Перейти к содержанию

Ansible

Материал из Мегавики — свободной энциклопедии
Ansible
Логотип программы Ansible
Скриншот программы Ansible
Тип configuration manager[вд] и Инфраструктура как код
Автор
Разработчики Red Hat и Q56826868?
Написана на Python[2][3], PowerShell и командная оболочка UNIX
Операционные системы GNU/Linux[4], BSD[вд][4], Microsoft Windows[4] и macOS[4]
Дата выпуска 20 февраля 2012
Последняя версия
Репозиторий github.com/ansible/ansib…
Лицензия GPL 3.0+[5][6] и проприетарная
Сайт ansible.com (англ.)

Ansible — система управления конфигурациями, написанная на языке программирования Python, с использованием декларативного языка разметки для описания конфигураций. Применяется для автоматизации настройки и развёртывания программного обеспечения. Обычно используется для управления Linux-узлами, но Windows также поддерживается. Поддерживает работу с сетевыми устройствами, на которых установлен Python версии 2.4 и выше по SSH- или WinRM[англ.]-соединению.

Автор платформы — Михаэль Дехан (Michael DeHaan), ранее разработавший серверную систему развёртывания программного обеспечения Cobbler[англ.] и соавтор фреймворка удалённого администрирования Func.

Входит в состав большинства дистрибутивов Linux. Есть пакеты для Solaris, FreeBSD и macOS. Развитием и коммерциализацией платформы занималась компания Ansible, 16 октября 2015 года она была поглощена корпорацией Red Hat.

Наименование взято от вымышленной системы мгновенной гиперпространственной связи из фильма «Игра Эндера», слово, её обозначающее, в свою очередь, заимствовано из романа Урсулы Ле Гуин «Мир Роканнона» (1966).

Архитектура[править]

Наряду с Chef, Puppet и SaltStack считается одной из наиболее популярных систем управления конфигурациями для Linux. Главное отличие Ansible от аналогов — не нужна установка агента или клиента на целевые системы.

Пользователь Ansible создаёт определённые сценарии («плейбуки», англ. playbooks) в формате YAML с описанием требуемых состояний управляемой системы. Сценарий — это описание состояния ресурсов системы, в котором она должна находиться в конкретный момент времени, включая установленные пакеты, запущенные службы, созданные файлы и многое другое. Ansible проверяет, что каждый из ресурсов системы находится в ожидаемом состоянии и пытается исправить состояние ресурса, если оно не соответствует ожидаемому.

Для выполнения задач используется система модулей. Каждая задача представляет собой имя задачи, используемый модуль и список параметров, характеризующих задачу. Система поддерживает переменные, фильтры обработки переменных (поддержка осуществляется библиотекой Jinja2), условное выполнение задач, параллелизацию, шаблоны файлов. Адреса и настройки целевых систем содержатся в файлах «инвентаря» (inventory). Поддерживается группирование. Для реализации набора сходных задач существует система ролей.

Ansible Tower[править]

Ansible Tower — графический интерфейс для управления и мониторинга работы Ansible. Является платным продуктом, однако в 2017 году, после перехода активов в RedHat, исходные коды Tower были опубликованы под свободной лицензией Apache. Новый проект получил название AWX Project, который ныне является кодовой основой для коммерческого продукта Tower[7].

В продукте организована визуальная панель состояния, ведутся списки доступа, группы и роли пользователей, обеспечивается централизованное журналирование и аудит.

Модули[править]

Категории модулей и выполняемые ими задачи:

Примечания[править]

  1. ↑ Release 2.19.2 — 2025.
  2. ↑ The ansible-ssh Open Source Project on Open Hub: Languages Page — 2006.
  3. ↑ https://github.com/EvanLi/Github-Ranking/blob/master/Data/github-ranking-2025-07-06.csv — 2025.
  4. ↑ 4,0 4,1 4,2 4,3 Free Software Directory
  5. ↑ https://github.com/ansible/ansible/blob/devel/COPYING (англ.)
  6. ↑ GNU Guix — 2012.
  7. ↑ The AWX project FAQ. Дата обращения: 13 апреля 2018. Архивировано 20 февраля 2018 года.
  8. ↑ Platform Options — Ansible Documentation. docs.ansible.com. Дата обращения: 24 июня 2021. Архивировано 24 июня 2021 года.

Литература[править]

  • Мозер Р., Хоштейн Л. Запускаем Ansible = Ansible: Up and Running. — ДМК Пресс, 2018. — 382 с. — ISBN 978-5-97060-513-4.