Что такое Ansible?
В этой статье мы вкратце рассмотрим ключевые особенности и структуру Ansible, его установку и запуск, а также модули и архитектуру.
Ansible — система с открытым исходным кодом. Задача Ansible — автоматизация поставки ПО, развертывание приложений и управление конфигурацией.
Особенности:
• безагентность. В клиенте не установлено ПО либо агент, который общается с сервером; • идемпотентность. Вне зависимости от того, сколько раз вызывается операция, результат не меняется; • простота и расширяемость. Ansible написан на Python и использует для написания команд YAML. Два этих языка считают довольно простыми в изучении.
Установка и запуск, как правило, затруднений не вызывают:
Если у вас другая ОС, добро пожаловать на страницу с инструкцией.
Структура
Модули
Небольшие программы, которые выполняют на сервере определенную работу. Допустим, вместо запуска команды
Применение модуля позволит узнать, установлен он либо нет.
Плагины
Фрагменты кода, расширяющие основные функциональные возможности. Ansible поставляется с рядом удобных плагинов, однако никто не мешает написать свой.
Инвентаризация хостов
Для предоставления перечня хостов, надо обозначить список, который находится в файле инвентаризации. Его содержание напоминает файл hosts. В простейшем виде — это одна строка:
Playbooks
Ansible playbooks представляет собой метод отправки команд на удаленные ПК посредством скриптов. Таким образом, не обязательно персонально применять Ansible-команды для удаленной настройки ПК из командной строки — можно сразу настраивать целые сложные среды и передавать скрипт одной либо нескольким системам.
group_vars
Это файл, содержащий набор переменных, к примеру, имя пользователя и пароль БД.
Роли
Это способ сгруппировать ряд задач в один контейнер, что позволит эффективно автоматизировать работу посредством понятной структуры каталогов.
Обработчики
Это списки задач, на деле не отличающиеся от обычных задач, на которые ссылается уникальное имя и которые оповещаются уведомителями. Вне зависимости от того, сколько именно задач уведомляет обработчик, запускается он лишь один раз и после завершения всех задач.
Теги
Если речь идет о playbook с большим объемом, бывает полезно запускать лишь определенную часть конфигурации.
Архитектура Ansible
Архитектура относительно проста для понимания, что можно видеть из рисунка ниже:
Существует один механизм автоматизации, напрямую взаимодействующий с пользователем, который пишет и выполняет playbooks. Также он способен взаимодействовать со службами (размещены в облаке), инструментами управления конфигурацией либо БД. Основные компоненты механизма автоматизации -- инвентаризация, подключаемые модули, API-интерфейсы, облако, хосты и т. д.
Источники: -- "Ansible"; -- "Ansible Tutorial Guide для начинающих"; -- "Ansible In Action".