Linux Labs

Автоматизация: Git и Ansible / Ступень 7 из 8

Роли, переменные и секреты

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 1 из 6 · на машине · 5 мин

Правка дошла до одного сайта из трёх

Чему научишься

  • Выносить общие задачи плейбуков в роль roles/<имя>/ — задачи, обработчики, шаблоны и значения по умолчанию — и вызывать её из плея списком roles.
  • Задавать переменные в defaults роли, group_vars, host_vars, vars плея и -e и заранее знать, чьё значение получит шаблон.
  • Шифровать секреты ansible-vault и прогонять плейбук с паролем vault из файла вне проекта.

На app1 работают три сайта — shop, blog и docs, у каждого свой плейбук в ~/ansible-lab. Коллега написал shop.yml для Ansible и скопировал его для двух других сайтов. Вчера он сменил телефон поддержки на страницах на 8-800-555-02-02 и прогнал все три плейбука. Посмотри, что отдают сайты и что записано в плейбуках.

Упражнение · посмотреть

Посмотри на сайты и плейбуки

В ~/ansible-lab посмотри, что отдают три сайта, и найди в плейбуках телефон поддержки и пароль базы.

Сначала предположи

Коллега сменил телефон и прогнал все три плейбука без ошибок. На скольких сайтах curl покажет 8-800-555-02-02?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа
Проверь себя 1 вопрос

Коллега сменил телефон в shop.yml и прогнал все три плейбука, а blog и docs показывают старый номер. Почему?

  • Прогоны прошли, и страницы blog и docs такие, как в их плейбуках: grep -n '8-800' *.yml показывает в blog.yml и docs.yml старый номер.

  • nginx читает страницу с диска при каждом запросе: cat /srv/blog/index.html покажет тот же номер, что и curl.

  • Каждый прогон применяет свой плейбук целиком. В blog.yml и docs.yml новый номер никто не вписал — grep -n '8-800' *.yml.

Три плейбука — независимые копии задач, и правку в shop.yml два других не видят.

Ubuntu 24.04
Загрузка…