# Справочный материал

## Что такое Ansible?

Ansible - это инструмент управления конфигурацией, стоящий в ряду с Chef, Puppet и Salt. 

Когда мы говорим о конфигурации управления, мы обычно говорим о написании какого-то состояния описание для наших серверов, а затем с помощью инструмента для обеспечения того, чтобы серверы были, действительно, в таком состоянии: нужные пакеты установлены, конфигурационные файлы содержат ожидаемые значения и имеют ожидаемые разрешения, работают нужные службы, и так далее. Как и другие инструменты  правления конфигурацией, Ansible предоставляет доменный язык (DSL), который вы используете для описания состояния ваших серверов.

Ansible — инструмент для развертывания приложений.

Когда люди говорят о развертывании, они обычно имеют в виду процесс использования программного обеспечения, которое было написано собственными силами, создание двоичных файлов или статических ресурсов (при необходимости), копирование необходимых файлов в сервер(ы), а затем запуск служб. Capistrano и Fabric — два примера инструментов развертывания с открытым исходным кодом. Ansible — отличный инструмент для развертывания, а также управление конфигурацией. Использование единого инструмента для управления конфигурацией и развертывания упрощает жизнь тем, кто отвечает за операции.

Ansible — инструмент для выполнения действий на нескольких серверах.

Некоторые люди говорят о необходимости оркестрации развертывания. Вот где много- Задействовано множество удаленных серверов, и все должно происходить в определенном порядке. За например, вам нужно поднять базу данных перед запуском веб-серверов, или вам нужно выводить веб-серверы из балансировщика нагрузки по одному, чтобы обновить их без простоев. Ansible также хорош в этом и разработан из основа для выполнения действий на нескольких серверах. Ansible имеет освежающий простая модель управления порядком выполнения действий.

Ansible — инструмент для взаимодействия с облаком.

Наконец, вы услышите, как люди говорят о предоставлении новых серверов. В контексте общественного облака, такие как Amazon EC2, это относится к запуску новой виртуальной машины пример. Ansible поможет вам в этом, предоставив ряд модулей для общения с облаком, включая EC2, Azure, Digital Ocean, Google Compute Engine, Linode и Rackspace, а также любые облака, поддерживающие API OpenStack.

## Релевантные определения

**Хост** — удаленная машина, управляемая Ansible.

**Группа**— несколько хостов сгруппированных  вместе, которые имеют общий атрибут.

**Инвентарь** — коллекция всех хостов и групп, которыми управляет Ansible. Это может быть статический файл в простых случаях, или инвентарь из удаленных источников, таких как облачные поставщики.

**Модули** — единицы кода, которые Ansible отправляет в удаленные узлы для выполнения.

**Задачи** — единицы действия, которые объединяют модуль и его аргументы вместе с некоторыми другими параметрами.

**Playbook** — упорядоченный список задач, а также его необходимые параметры, которые определяют рецепт для настройки системы.

**Роли** — переиспользуемые единицы организации, которые позволяют пользователям облегчить код автоматизации. Обычно включают список файлов и задач для настройки одного сервиса.

**YAML** — популярный и простой формат данных.
