Шаг 5 из 6 · лаба · 30 мин
Роль не применяется
Плейбук страницы статуса вынесли в роль, чтобы ставить её на все магазины. На этой машине роль падает, а когда проходит — показывает чужой магазин. Почини роль, не трогая значения в site.yml.
Ситуация
Страница статуса нужна теперь на всех магазинах сети, и Тимур не стал копировать плейбук. Он вынес задачи плейбука
магазина «Юг» в роль status_board, а для каждого магазина оставил короткий site.yml: свои заголовок и порт в
vars: и строка roles:. На этой машине — магазин «Север», проект в ~/status-board. ansible-playbook site.yml
здесь падает.
Задача
Почини роль roles/status_board так, чтобы site.yml сам приводил эту машину (localhost из inventory.ini) в
нужное состояние:
ansible-playbook site.ymlпроходит без ошибок.- Настройки
/etc/status/status.iniсобраны по шаблону ролиstatus.ini.j2с заголовком и портом изsite.yml: владелец root, группаstatus, права0640. - Служба
lab-statusзапущена, включена при загрузке и отвечает:curl http://127.0.0.1:8096/— заголовок «Магазин «Север»: статус витрины». - Службу перезапускает прогон, который поменял настройки, а прогон без изменений её не трогает.
- Повторный запуск плейбука ничего не меняет: в итоге
changed=0.
«Проверить» прогоняет плейбук сам. Сначала убирает то, что делает роль: службу lab-status с юнитом, /etc/status,
/var/lib/status и пользователя status. Потом от твоего имени запускает ansible-playbook site.yml из
~/status-board дважды, правит руками строку title в /etc/status/status.ini и запускает в третий раз — служба
должна перезапуститься. Последний прогон — --check --diff на копии проекта, где в site.yml другие заголовок и
порт: настройки должны получить их. Поэтому всё должна делать роль — настроенное руками проверка уберёт.
Значения в site.yml, приложение и файл юнита lab-status.service роли не меняй.
Запуск:
cd ~/status-board && ansible-playbook site.yml. Что в роли —find roles -type f. Интернета на машине нет.
Лаба · самостоятельно
Команды в этой лабе не даны: набирай их в терминале сам. Цели проверяются на машине после каждой команды.
Цели
0 из 5-
ansible-playbook site.yml проходит без ошибок на машине без страницы статуса — ещё не выполнена
-
/etc/status/status.ini собран по шаблону роли со значениями из site.yml (root:status, 0640) — ещё не выполнена
-
Служба lab-status запущена, включена при загрузке и отвечает на http://127.0.0.1:8096/ заголовком из site.yml — ещё не выполнена
-
Служба перезапускается, когда прогон поменял настройки, и только тогда — ещё не выполнена
-
Повторный прогон ничего не меняет — changed=0 — ещё не выполнена
Машина запускается
Подсказки
0 из 3Цели лабы
0 из 5-
ansible-playbook site.yml проходит без ошибок на машине без страницы статуса — ещё не выполнена
-
/etc/status/status.ini собран по шаблону роли со значениями из site.yml (root:status, 0640) — ещё не выполнена
-
Служба lab-status запущена, включена при загрузке и отвечает на http://127.0.0.1:8096/ заголовком из site.yml — ещё не выполнена
-
Служба перезапускается, когда прогон поменял настройки, и только тогда — ещё не выполнена
-
Повторный прогон ничего не меняет — changed=0 — ещё не выполнена
Цели проверяются на машине после каждой команды.