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