Ansible

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

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

Автор платформы — Михаэль Дехан (Michael DeHaan), ранее разработавший серверную систему развёртывания программного обеспечения Cobbler[en] и соавтор фреймворка удалённого администрирования 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. The ansible-ssh Open Source Project on Open Hub: Languages Page — 2006.
  2. 1 2 3 4 Free Software Directory
  3. https://pypi.org/project/ansible/#history
  4. Release 2.15.0 — 2023.
  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 года.

Литература[править | править код]