Лабораторная работа на ознакомление с Ansible. Это переписанная версия nginx-conf-maker (Python+Bash) с использованием Ansible В ходе работы я познакомился с:
- Основными принципами работы Ansible
 - Управлением сервисами и файлами через Ansible модули
 - Написанием и запуском Ansible playbooks для управления конфигурацией серверов
 - Использованием шаблонов Jinja2 для динамического создания конфигурационных файлов
 
Изначально писал один основной большой плейбук, теперь он разбит на 4 роли:
- nginx_base
 - check
 - conf_maker
 - test_html_make
 
- 
nginx_base - Базовая настройка: установка Nginx, открытие портов, отключение SELinux
 - 
check - Валидация входных параметров и проверка файловой структуры
 - 
conf_maker - Создает на основе .jinja2 шаблона .conf файлы для nginx в /conf.d вызывает reload сервиса nginx eсли был change
 - 
test_html_make - Создание тестовой HTML-страницы с параметрами виртуального хоста
 
Все собственно как и раньше, мы вписываем нужные данные в group_vars\all\sites.yml
Запускаем плейбук
ansible-playbook -i inventory playbook.yml
На выходе получаем .conf файл с нужными нам значениями и тестовую html страницу, чтобы через curl сразу увидеть что все поднялось правильно. Также вносятся ip и доменное имя сайта в /etc/hosts
- Доступ к sudo
 - Ansible
 
Проект протестирован на чистой системе Oracle Linux 9. Под чистой системой я понимаю только подключенные epel пакеты и установленный Ansible
Получилось сократить кол-во требований и предварительной подготовки системы. Также добавлено создание тестовой html страницы, внесенеие строки в hosts
Ansible действительно проще для реализации проектов на автоматизацию, по крайне мере если сравнивать с прошлым проектом. Более читаймый, меньше требований, отсутствует необходимость погружаться в синтаксис. Ну и кончено удобная работа с шаблонами. Главное уметь искать в документации нужные примеры и параметры
LLIILLEEDD