я использую Ансибль и люблю это. Что меня действительно зацепило в первую очередь, так это ansible_facts. Одна простая пьеса вернет огромное количество информации о данной системе. Раньше я просто сохранял вывод и искал его для ключ: значение
пара, которую я хотел. Вероятно, есть лучший способ сделать это.
В простейшем примере конфигурации вы ведете «инвентарь» хостов, на которых хотите запустить Ansible. Это что-то вроде:
[мои_хосты]
host1.mydomain.com
host2.mydomain.com
...
Затем вы можете запустить Ansible «playbook» на my_hosts
и он поразит каждый хост, который вы настроили в этом блоке. Playbook — это просто конфигурация YAML, содержащая команды, переменные и форматирование, которое понимает Ansible. Это не сценарий оболочки. Это «способ» сообщить Ansible, что делать на хосте. Мне потребовалось некоторое время, чтобы обернуть вокруг себя голову.
Опять же, для простоты вы можете создать плейбук, который запускает команду оболочки и запускает этот плейбук на каждом хосте. Вот плейбук «время безотказной работы», который я часто использовал.
---
- хозяева: все
сбор_фактов: ложь
задачи:
- имя: время работы хоста
оболочка: безотказная работа
регистр: вывод
- отладка: var=output.stdout_lines
# вывести отформатированную строку для майнинга grep/sed
- отладка: msg="grepme {{ inventory_hostname }}: {{ output.stdout_lines}}"
Вещи становятся намного более сложными, чем это, но сначала сложно начать. Упрощение вещей с помощью только команд оболочки может намочить ноги, но как только вы выходите за рамки простых вещей, вам следует искать более «Ansily» способы делать вещи, которые являются более сложными и трудными для работы, но они окупаются.