Открыть сервис

Ansible

Ansible — это открытое программное обеспечение для управления конфигурациями, автоматизации развёртывания приложений и оркестрации IT-инфраструктуры. Разрабатывается компанией Red Hat (подразделение IBM). Ansible относится к классу систем управления конфигурациями (Configuration Management, CM) наряду с такими инструментами, как Puppet, Chef и SaltStack. Ключевая особенность Ansible — отсутствие необходимости устанавливать на управляемые узлы какое-либо специальное агентское программное обеспечение (агент). Взаимодействие с узлами происходит по протоколу SSH (для Linux/Unix) или WinRM (для Windows). Ansible использует декларативный подход, описывая желаемое состояние системы на языке YAML.

История

Проект Ansible был создан в 2012 году Майклом ДеХааном (Michael DeHaan), автором таких систем, как Cobbler (автоматизация установки ОС) и Func (инструмент удалённого управления). Первая версия была выпущена в феврале 2012 года. В 2013 году компания Ansible, Inc. привлекла венчурное финансирование.

В октябре 2015 года Red Hat объявила о приобретении Ansible, Inc. за 150 миллионов долларов США. После этого Ansible стал ключевым продуктом Red Hat в области автоматизации, интегрированным с Red Hat Enterprise Linux (RHEL) и другими продуктами экосистемы. В 2017 году Red Hat выпустила продукт Red Hat Ansible Tower (позднее переименованный в Red Hat Ansible Automation Platform), предоставляющий веб-интерфейс, API и дополнительные возможности для управления Ansible в корпоративной среде. В 2020 году проект Ansible Core (базовая библиотека) был передан под управление сообщества, а Red Hat сосредоточилась на коммерческой платформе.

Архитектура и принципы работы

Ansible основан на архитектуре «без агента» (agentless). Это означает, что на управляемых хостах не требуется установка и запуск фонового демона. Вместо этого Ansible подключается к ним удалённо через SSH (по умолчанию) или WinRM, выполняет команды и модули, а затем отключается. После выполнения задачи никаких следов на управляемом узле не остаётся (кроме изменений, внесённых в соответствии с задачей).

Ключевые компоненты

Процесс выполнения

  1. Пользователь запускает команду ansible-playbook на управляющем узле, указывая плейбук.
  2. Ansible считывает плейбук и инвентарь.
  3. Для каждого хоста из плейбука Ansible устанавливает SSH-соединение (или WinRM).
  4. Ansible собирает факты (facts) о системе — информацию об ОС, IP-адресах, дисках, установленных пакетах и т.д. (сбор фактов можно отключить для ускорения).
  5. Ansible последовательно выполняет задачи из плейбука. Для каждой задачи он копирует соответствующий модуль на управляемый узел, выполняет его и получает результат в формате JSON.
  6. Если задача изменяет состояние системы (например, устанавливает пакет), она считается «изменённой» (changed). Если состояние уже соответствует желаемому, задача считается «OK».
  7. После выполнения всех задач Ansible закрывает соединения и выводит отчёт.

Классификация и компоненты экосистемы

Ansible можно разделить на несколько уровней:

Применение

Ansible широко используется в различных областях IT-инфраструктуры:

Преимущества и недостатки

Преимущества

Недостатки

Интересные факты

Источники

  1. Официальная документация Ansible: «Ansible Documentation» (docs.ansible.com).
  2. Книга: Lorin Hochstein, Rene Moser. «Ansible: Up and Running». O'Reilly Media, 2021.
  3. Статья: «Red Hat acquires IT automation startup Ansible for $150M» (ZDNet, 2015).
  4. Статья: «What is Ansible?» (Red Hat, официальный сайт).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →