Linux Labs

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

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

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

Шаг 3 из 6 · на машине · 7 мин

Чьё значение главнее

Одну переменную можно задать в нескольких местах. Какое значение получит шаблон, решает порядок.

Переменные машин и групп кладут в каталоги рядом с инвентарём: group_vars/web.yml — для всех машин группы web, host_vars/app1.yml — для одной машины app1. Ansible читает эти файлы сам, плейбук их не называет. Что машина получила из инвентаря и этих каталогов, показывает ansible-inventory --host app1.

Если переменная задана в нескольких местах, значение берётся из того, что ниже в таблице: каждая строка перекрывает строки выше.

Где задано Для кого
defaults/main.yml роли все плеи с этой ролью
group_vars/<группа>.yml машины группы
host_vars/<машина>.yml одна машина
vars плея задачи этого плея
-e имя=значение один прогон

-e сильнее всех, но действует только в своём прогоне: следующий прогон без него вернёт прежнее значение. Мест для переменных больше, полный порядок — в Вики.

Упражнение · сделать

Дай docs свой телефон

В ~/ansible-lab у трёх сайтов общий телефон группы web из group_vars/web.yml. Коллега хотел дать docs свою линию 8-800-555-04-04 и записал её в host_vars/app1.yml — теперь этот номер на всех трёх сайтах. Сделай так, чтобы docs показывал 8-800-555-04-04, а shop и blog — телефон группы. Прогони все три плейбука.

Войти и начать Машина доступна после входа

Цели · 0 из 2

  • Вернуть shop и blog телефон группы ещё не выполнена
  • Оставить docs свой телефон ещё не выполнена

Цели шага

0 из 2
  • Вернуть shop и blog телефон группы — ещё не выполнена
  • Оставить docs свой телефон — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 2
  • Вернуть shop и blog телефон группы — ещё не выполнена
  • Оставить docs свой телефон — ещё не выполнена
Загрузка…