Лабораторная работа на ознакомление с 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