Общая информация
Foreman
Puppet
Puppet — кроссплатформенное распределенное клиент-серверное приложение, позволяющее централизованно управлять конфигурацией операционных систем и программ, установленных на удаленных компьютерах, использующих практически любую операционную систему.
Компьютеры, управляемые с помощью Puppet, периодически опрашивают сервер, получают и применяют централизованно внесенные администратором изменения в конфигурацию. Конфигурация описывается на специальном декларативном предметно-ориентированном языке.
Система управления конфигурациями Ansible
Ansible — система управления конфигурациями, написанная на языке программирования Python, с использованием декларативного языка разметки для описания конфигураций. Используется для автоматизации настройки и развертывания программного обеспечения.
В концепции Ansible администратор создает определенные сценарии («плейбуки») (англ. playbook, play — игра, пьеса, book — книга) в формате YAML с описанием требуемых состояний управляемых систем. Каждый «плейбук» — это описание состояния ресурсов системы, в котором она должна находиться в конкретный момент времени, включая установленные пакеты, запущенные службы, созданные файлы и многое другое. Сервер Ansible проверяет, что каждый из ресурсов системы находится в ожидаемом состоянии и пытается исправить состояние ресурса, если оно не соответствует ожидаемому. При этом сценарии обладают свойством идеипотентности: повторное выполнение сценариев не изменяет результат первого выполнения.
Для выполнения задач используется система модулей. Модуль - небольшая программа, выполняющая на управляемой машине определенное действие (действия).
Каждая задача представляет собой имя задачи, используемый модуль и список параметров, характеризующих задачу. Система Ansible поддерживает переменные, фильтры обработки переменных (поддержка осуществляется библиотекой Jinja2), условное выполнение задач, параллельное выполнение, шаблоны файлов. Адреса и настройки целевых систем содержатся в файлах «инвентаря» (inventory). Поддерживается группирование. Для реализации набора сходных задач существует система ролей.
В отличие от системы управления конфигурациями Puppet система Ansible не требует установки на управляемые компьютеры каких-либо агентов, а подключение к управляемым машинам осуществляется через службу SSH. Подробнее см. Система управления конфигурациями Ansible
Оригинальная документация
Оригинальная документация Foreman
Оригинальная документация Foreman доступна по ссылкам:
Оригинальная документация Puppet
Оригинальная документация Puppet доступна по ссылке: https://puppet.com/docs/
Оригинальная документация Ansible
Оригинальная документация Ansible доступна по ссылке: https://docs.ansible.com/