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