Автоматизация: Git и Ansible / Итоговая лаба
Сайт на node2 — плейбуком с node1
Ситуация
Страницу статуса команды переносят на node2. Коллега собрал на node1 проект Ansible ~/deploy:
плейбук site.yml ставит на node2 сайт nginx status на порту 8080 — конфиг сайта и страницу из
шаблонов в templates/, с выпуском из переменной release, — и перечитывает nginx обработчиком. Перед
уходом коллега прогнал плейбук: ansible-playbook site.yml отработал без ошибок, а страницы на node2 нет.
Плейбук будут прогонять каждый день, поэтому повторный прогон не должен ничего менять.
node1 — твой терминал: Ansible запускается здесь, от student, из каталога ~/deploy. На node2 student
входит по ключу: ssh node2 'команда' или ssh node2, назад — exit. sudo на обеих машинах работает
без пароля.
Задача
ansible-playbook site.ymlс node1 настраивает node2, и задачи плейбука выполняются на node2.- С node1
curl http://node2:8080/получает страницу из шаблона — с выпуском из переменнойrelease. - Когда конфиг сайта на node2 разошёлся с шаблоном, прогон возвращает его, и nginx перечитывает конфиг; прогон без изменений nginx не трогает.
- Повторный прогон проходит без ошибок и ничего не меняет (
changed=0), аansible-playbook site.yml --check --diffне находит расхождений.
Ограничения
- Чини проект
~/deploy: node2 настраивает плейбук. Правку на node2 руками следующий прогон вернёт к шаблону — проверка её не засчитает. - Проверка сама прогоняет плейбук от student: обычным прогоном (дважды, если первый что-то поменял), с
--check --diff, а потом дописывает строку в/etc/nginx/sites-available/statusна node2 и прогоняет ещё раз — плейбук должен вернуть файл к шаблону, а nginx — перечитать конфиг.
Интернета в лабе нет — только сеть между node1 и node2. Всё нужное установлено на обеих машинах. После каждой правки прогоняй плейбук и читай предупреждения и
PLAY RECAP: код выхода 0 бывает и тогда, когда задачи ушли не туда.
Цели лабы
0 из 5-
Плейбук site.yml нацелен на node2, и его задачи выполняются на node2 — ещё не проверялась
-
С node1 http://node2:8080/ отдаёт страницу из шаблона — с выпуском из переменной release — ещё не проверялась
-
Когда конфиг сайта на node2 разошёлся с шаблоном, прогон возвращает его и nginx перечитывает конфиг; прогон без изменений nginx не трогает — ещё не проверялась
-
Повторный прогон ansible-playbook site.yml проходит без ошибок и ничего не меняет (changed=0) — ещё не проверялась
-
ansible-playbook site.yml --check --diff не находит расхождений с node2 — ещё не проверялась