Ansible — програмне забезпечення, що надає засоби для управління конфігурацією, оркестровки, централізованої установки застосунків і паралельного виконання типових завдань на групі систем. Початковий код Ansible написаний мовою Python і розповсюджується під ліцензією GPLv3.

Ansible
Тип управління конфігурацією[en], інфраструктура як код
Автор Michael DeHaan
Розробники Red Hat
Перший випуск 20 лютого 2012; 12 років тому (2012-02-20)
Стабільний випуск 2.10.5 (19 січня 2021; 3 роки тому (2021-01-19)[1])
Операційна система GNU/Linux, Unix-подібні, Windows
Мова програмування Python
Стан розробки активний
Ліцензія GNU General Public License
Онлайн-документація docs.ansible.com/ansible/latest/
Репозиторій github.com/ansible/ansible
Вебсайт www.ansible.com

З особливостей 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.

Посилання ред.

Примітки ред.

  1. Releases - ansible/ansible. Архів оригіналу за 3 листопада 2020. Процитовано 29 січня 2021 — через GitHub.