Рабочая область Ansible-Terraform. Часть 2

среда разработки с Ansible, Terraform и множеством других приложений в одном образе докера.

Рабочее пространство Ansible-Terraform, часть 1

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

Часть 2 описывает набор инструментов Ansible для Рабочего пространства Ansible-Terraform с примерами и фрагментами кода.

В рабочей области есть пример ansible-playbook — простая игра, которая устанавливает пакеты на локальные хосты.

cd /home/examples/ansible-local && ansible-playbook install-packages.yml

Ансибл Ара

ARA записывает Ansible и упрощает понимание и устранение неполадок. Ansible Ara полностью настраивается в рабочей области Ansible-Terraform — он фиксирует любое выполнение (вручную или по расписанию) любого плейбука ansible.

Сервер Ara запущен и работает в рабочей области и доступен по внутреннему порту 8029. Если вы сопоставили стандартные порты с рабочим компьютером Ansible-Terraform, то веб-интерфейс Ansible Ara находится на localhost:8029.

Отчет Ansible

Ansible-report — это небольшая утилита, которая генерирует несколько отчетов из вашего ansible-проекта — визуализирует инвентарь, представляет все игры в формате графиков, генерирует интерактивный статичный веб-сайт с информацией о хостах и ​​т. д.

cd /home/examples/ansible-local && ansible-report

Ansible-report — это сценарий оболочки, который просто запускает несколько инструментов ansible за один раз:

  • ansible-lint
  • ansible-cmdb
  • ansible-инвентаризация-график
  • ansible-playbook-grapher (для всех игр ansible в папке)

Вы также можете использовать любой из инструментов ansible отдельно.

Ансибл Линт

Ansible Lint — это инструмент командной строки для анализа плейбуков, ролей и коллекций, предназначенный для любых пользователей Ansible. Перейдите в папку с вашим проектом Ansible и выполните

ansible-lint --nocolor > /home/static-server/ansible-lint.txt

Ansible-cmdb

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

ansible -m setup --tree out/ all
ansible-cmdb out/ > overview.html

Ansible инвентаризатор

Ansible-inventory-grapher создает точечный файл, подходящий для использования graphviz. Перейдите в папку с вашим проектом Ansible и выполните

ansible-inventory-grapher all | dot -Tpng > /home/static-server/my.png

Ansible Playbook Grapher

Инструмент командной строки для создания графика, представляющего ваши игры, задачи и роли Ansible playbook. Цель этого проекта — получить обзор вашей игровой книги. Перейдите в папку с вашим проектом Ansible и выполните

ansible-playbook-grapher --include-role-tasks example.yml -o /home/static-server/example

Энсибл Доктор

Ansible-doctor — это простой генератор аннотаций, похожий на документацию, основанный на шаблонах Jinja2. Хотя ansible-doctor поставляется с шаблоном по умолчанию, называемым readme, вы также можете написать свои собственные шаблоны.

Первый шаг — определить, является ли данная папка ролью Ansible. Эта проверка очень проста, если папка содержит подкаталог с именем tasks, ДОЛЖНА быть роль Ansible! :)

После успешной проверки ansible-doctor попытается прочитать некоторые статические файлы в словарь:

  • значения по умолчанию/main.yml
  • мета/main.yml

Перейдите в папку с вашим проектом Ansible и выполните

ansible-doctor -o /home/static-server/ roles/example_production

Расписание выполнения плейбука Ansible

Рабочее пространство Ansible-Terraform имеет 2 инструмента (Cronicle и ARA), которые упрощают и упрощают использование Ansible для периодических задач и заданий. Например, техническое обслуживание вашей облачной инфраструктуры. Это особенно удобно, если вы запускаете эту рабочую область на удаленном сервере.

  • [Cronicle] — позволяет планировать задачи и задания, а также позволяет наблюдать за выполнением с помощью приятного пользовательского интерфейса.
  • [Ansible Ara] — отслеживает все выполнения плейбуков ansible (вручную или по расписанию) и имеет приятный пользовательский интерфейс, который предоставляет информацию о каждом шаге выполнения каждого плейбука.

Вы можете попробовать запланировать пример ansible playbook с помощью Cronicle.

ПРИМЕЧАНИЕ. Планирование плейбуков Ansible особенно полезно, если вы запускаете Workspace на удаленном сервере, а не на локальном ноутбуке.

Рабочее пространство Ansible-Terraform, часть 3