Ansible
![]() | |
Тип | управління конфігурацією[en], інфраструктура як код |
---|---|
Автор | Michael DeHaan |
Розробники | Red Hat |
Перший випуск | 20 лютого 2012 |
Стабільний випуск | 2.10.5 (19 січня 2021[1]) |
Операційна система | GNU/Linux, Unix-подібні, Windows |
Мова програмування | Python |
Стан розробки | активний |
Ліцензія | GNU General Public License |
Онлайн-документація | docs.ansible.com/ansible/latest/ |
Репозиторій | github.com/ansible/ansible |
Вебсайт | www.ansible.com |
Ansible — програмне забезпечення, що надає засоби для управління конфігурацією, оркестровки, централізованої установки застосунків і паралельного виконання типових завдань на групі систем. Сирцевий код Ansible написаний мовою Python і розповсюджується під ліцензією GPLv3.
З особливостей Ansible можна відзначити просту і легко читану мову управління конфігурацією, підтримку розпаралелювання робіт, відсутність необхідності установки на віддалені системи спеціальних програм-агентів (всі операції ініціюються централізовано по SSH, або за допомогою інших плаґінів з'єднання, як-то winrm), можливість роботи без прав root. Система Ansible не так ускладнена, як CFEngine[en], puppet і Chef (програма)[en], але при цьому надає досить широкі можливості та високу гнучкість управління.
Архітектура
Разом з Chef, Puppet і SaltStack вважають однією з найпопулярніших систем управління конфігураціями для Linux. Головна відмінність Ansible від аналогів — не потрібно попередньо встановлювати клієнт на цільових системах.
Користувач Ansible створює «плейбуки» у форматі YAML з описом необхідних штатних керованих систем. «Плейбук» — це опис стану ресурсної системи, в якому вона має перебувати у конкретний момент часу, включаючи встановлені системні пакунки, запущені служби, створені файли та багато іншого. Ansible перевіряє, що кожен із ресурсів системи знаходиться в очікуваному стані і запитує та виправляє стан ресурсу, якщо він не відповідає очікуваному.
Для виконання завдань використовується система модулів. Кожне завдання становить собою назву завдання, модуль що використовується і список параметрів, які описують завдання. Ansible підтримує змінні, фільтри (за допомогою бібліотеки Jinja2), умовне виконання завдань, паралелізацію, шаблони файлів. Адреси та налаштування цільових систем містяться в статичних файлах «інвентарю» (inventory), або ж визначаються динамічно через «плаґіни інвентарю». Підтримує групування. Для реалізації набору подібних завдань існує система ролей, а для поширення уніфікованих наборів контенту, як-то плейбуків, різних типів плаґінів і ролей, є Ansible Collections — формат пакунків, які зберігаються у публічному реєстрі ansible-galaxy.
Посилання
Примітки
- ↑ Releases - ansible/ansible. Процитовано 29 січня 2021 — через GitHub.