Как использовать переменные шаблона в group_vars

В group_vars/У меня есть три файла, соответствующие именам группы инвентаризации:

  • all.yml
  • windows.yml
  • linux.yml

В windows.yml Я определяю bot-os-user: MYDOMAIN\domainuser,

В linux.yml Я определяю bot-os-user: somelinuxuser,

В all.yml Я определяю ansible_user: {{ bot-os-user }},

Проблема, указанная так, Ansible говорит мне {{ ... }} должно быть в двойных кавычках. И с двойными кавычками {{ bot-os-user }} никогда не расширяется, то есть буквально остается {{ bot-os-user }}в то время как ожидаемый результат ansible_user имеющий значение bot-os-userпеременная

Я что-то пропустил? Как мне заставить это работать?

PS Это действительно повторное использование переменных для определения значений других переменных, а не чего-то еще.

1 ответ

Решение

Есть много проблем. Смотрите примечания ниже. В дополнение к этому, проблема здесь заключается в определении переменных, поэтому я переименовал ansible_user из вопроса в my_ansible_user.

  • Расширение переменной должно быть заключено в кавычки, а переменная bot_os_user должна существовать.

    my_ansible_user: "{{bot_os_user}}"

  • Переменная bot_os_user будет существовать, если в игру включены какие-либо или оба из файлов windows.yml, linux.yml

  • Файл windows.yml или linux.yml из каталога group_vars/ будет включен, если хост, на котором выполняется воспроизведение, является членом группы windows или linux.

Например:

> cat group_vars/linux.yml
bot_os_user: "linux-user"

> cat group_vars/all.yml
my_ansible_user: "{{ bot_os_user }}"

> cat hosts
---
linux:
  hosts:
    test_01:
    test_02:
    test_03:

Игра ниже

> cat test1.yml
---
- hosts: test_01
  tasks:
    - debug: var=bot_os_user
    - debug: var=my_ansible_user

дает:

ok: [test_01] => {
"bot_os_user": "linux-user"
ok: [test_01] => {
"my_ansible_user": "linux-user"
}

Заметки:

  • "-" не является допустимым символом в имени переменной
  • Правильное имя каталога - group_vars
  • Избегайте escape-символов "\" в тексте, если это возможно
Другие вопросы по тегам