|
|
|
|
# Справочный материал
|
|
|
|
|
|
|
|
|
|
## Что такое 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** — популярный и простой формат данных.
|