Рабочая область Ansible-Terraform. Часть 2
среда разработки с Ansible, Terraform и множеством других приложений в одном образе докера.
Это вторая часть публикаций о Рабочем пространстве 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 на удаленном сервере, а не на локальном ноутбуке.