Linux Labs

Автоматизация: Git и Ansible / Итоговая лаба

Сайт на node2 — плейбуком с node1

сложная ~50 мин
Не запущена Запускается обычно ~20 с
Сообщить о проблеме

Ситуация

Страницу статуса команды переносят на 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 на обеих машинах работает без пароля.

Задача

  1. ansible-playbook site.yml с node1 настраивает node2, и задачи плейбука выполняются на node2.
  2. С node1 curl http://node2:8080/ получает страницу из шаблона — с выпуском из переменной release.
  3. Когда конфиг сайта на node2 разошёлся с шаблоном, прогон возвращает его, и nginx перечитывает конфиг; прогон без изменений nginx не трогает.
  4. Повторный прогон проходит без ошибок и ничего не меняет (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 — ещё не проверялась

Подсказки

открыто 0 из 3 · открываются по одной
Подсказка 1
Показать решение после 3 неудачных проверок

Выйти из лабы?

Машина проработает ещё 10 минут и удалится. Файлы пропадут, выполненные цели останутся.

Загрузка…