Рейтинг:1

Как переопределить переменную ansible playbook?

флаг br

У меня есть playbook, похожий на приведенный ниже, который использует base_acl переменная. Давай притворимся base_acl: "default_acl.j2. У меня есть хост, который я хочу использовать для другого base_acl значение для. я просмотрел доступный приоритет документы и не вижу способа сделать это, кроме как с помощью --extra-vars в командной строке, чего я не хочу делать.

Я пытался определить base_acl в host_vars файл (должен иметь более высокий приоритет в соответствии с приведенной выше ссылкой?) для рассматриваемого хоста, однако игра по-прежнему печатает «playbook» для значения переменной при запуске.

Есть ли способ сказать ansible, чтобы дать host_vars приоритет над переменными playbook?

---
- хозяева: все
  собрать_факты: нет
  вары:
    base_acl : "плейбук"
    
  задачи:
  - отладка: msg="переменная {{base_acl}}"
Рейтинг:1
флаг fr

Я попытался определить base_acl в файле host_vars (должен иметь более высокий приоритет в соответствии с приведенной выше ссылкой?) для рассматриваемого хоста, однако игра по-прежнему печатает «playbook» для значения переменной при запуске.

Из ссылки, на которую вы ссылались в своем вопросе:

...
8Â Â - файл инвентаризации или переменные хоста скрипта
9Â Â - инвентарь host_vars/*
10Â - плейбук host_vars/*
11Â - факты хоста / кэшированные set_facts
12В - играть варс
...
22 - дополнительные переменные (например, -e "user=my_user") (всегда имеют приоритет)

Таким образом, поскольку наибольшее число побеждает и все записи, связанные с хостом (от 8 до 11), имеют меньшее число, чем 12, ваше утверждение на самом деле неверно. Единственная правильная оценка состоит в том, что дополнительная переменная всегда перекрывает все.

На самом деле есть много способов добиться того, что вы ищете. Но в вашей ситуации я бы поступил именно так.

  1. удалить запись play var в вашей книге воспроизведения
  2. поместите значение по умолчанию в group_vars/all.yml (либо на уровне инвентаря, либо на уровне сборника):
    base_acl: "плейбук"
    
  3. переопределить значение по умолчанию для каждого соответствующего хоста в host_vars/<ваш_хост>.yml (либо на уровне инвентаря, либо на уровне сборника):
    base_acl: "переопределить значение"
    

Обратите внимание, что вышеуказанное также будет работать, чтобы переопределить значение по умолчанию для определенной группы в group_vars/<ваша_группа>.yml (либо на уровне инвентаря, либо на уровне сборника).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.