Ansible Core#

Ansible – это инструмент для автоматизации процессов управления инфраструктурой и конфигурацией. Он позволяет автоматизировать развертывание приложений, настройку серверов, управление сервисами и многим другим. Ansible использует простой синтаксис, в основном с использованием формата YAML, хотя применяются и другие форматы, например, INI и JSON. В большинстве сценариев управления серверами и другими компьютерами Ansible подключается к ним по протоколу SSH, загружает и выполняет модули Python для реализации заданных задач автоматизации. В таком сценарии необходимо создать ключи SSH, позволяющие управлять такими узлами. Установка агентов на управляемые узлы не требуется. В других случаях можно использовать расширения, которые позволяют Ansible управлять узлами с помощью других протоколов.

Ansible Core представляет собой ядро этого инструмента и является основой всей платформы. Это минимальная и обязательная часть Ansible, которая обеспечивает основные функции:

  • обработку инвентарных списков;

  • управление подключениями;

  • выполнение базовых модулей управления на удаленных узлах.

Ansible Core включает в себя следующие компоненты:

  • утилиты командной строки:

    • ansible – выполняет одиночные команды на управляемых узлах;

    • ansible-playbook – запускает сценарии автоматизации;

    • ansible-galaxy – управляет коллекциями и ролями;

    • ansible-inventory – работает с инвентарем;

    • ansible-config – управляет конфигурацией Ansible;

    • ansible-vault – используется для шифрования и защиты данных.

  • встроенную коллекцию ansible.builtin, в которую входят основные модули, например, file, service, user и другие.

Базовая функциональность Ansible обеспечивается большим количеством встроенных модулей. При этом возможности Ansible можно расширять с помощью коллекций. Подробную информацию см. в документе Коллекции Ansible.

Структура управления#

При использовании Ansible управляющий узел подключается к управляемым узлам и выполняет по отношению к ним команды управления.

../_images/nodes-schema-light.svg ../_images/nodes-schema-dark.svg

Управляющий узел#

Управляющим узлом (control node) Ansible из состава Astra Automation является рабочая станция под управлением Astra Linux, на которой установлены компоненты Ansible и которую используют для выполнения различных задач по автоматизации управляемых узлов.

Управляемые узлы#

Управляемым узлом (managed node) называется узел, к которому можно обращаться как к самостоятельной единице с целью автоматизации процессов на нем с помощью Ansible. Это могут быть любые типы компьютеров, сетевое оборудование, средства хранения, технологическое оборудование и тому подобное.

Факты#

Факты (facts) – это набор сведений об управляемом узле, например, архитектура и версия установленной ОС, версия BIOS, наличие в системе определенных устройств и тому подобное.

Настройки#

Во время работы Ansible использует настройки, переданные в аргументах командной строки, заданные в переменных окружения или указанные в файле настроек ansible.cfg. Поиск файла настроек ansible.cfg выполняется в следующем порядке:

  1. Каталог, указанный в значении переменной окружения ANSIBLE_CONFIG.

  2. Текущий каталог.

  3. Домашний каталог активного пользователя.

  4. Каталог /etc/ansible/.

Поиск прекращается как только файл ansible.cfg будет найден в любом из указанных расположений.