Em group_vars/
, tenho três arquivos correspondentes aos nomes dos grupos de inventário:
all.yml
windows.yml
linux.yml
Em windows.yml
eu defino bot-os-user: MYDOMAIN\domainuser
.
Em linux.yml
eu defino bot-os-user: somelinuxuser
.
Em all.yml
eu defino ansible_user: {{ bot-os-user }}
.
O problema é que, especificado assim, o Ansible me diz que {{ ... }}
deve estar entre aspas duplas. E com aspas duplas, o {{ bot-os-user }}
nunca é expandido, ou seja, fica literalmente {{ bot-os-user }}
, enquanto o resultado esperado é ansible_user
ter o valor da bot-os-user
variável 's.
Estou esquecendo de algo? Como faço para funcionar?
PS É realmente sobre a reutilização de variáveis para definir os valores de outras variáveis e não outra coisa.
Existem muitos problemas. Veja as notas abaixo. Além disso, o problema aqui é a definição de variáveis, por isso renomeei ansible_user da pergunta para my_ansible_user .
A expansão de uma variável deve estar entre aspas e a variável bot_os_user deve existir.
my_ansible_user: "{{ bot_os_user }}"
A variável bot_os_user existirá se algum ou ambos os arquivos windows.yml , linux.yml forem incluídos em uma reprodução
O arquivo windows.yml , ou linux.yml do diretório group_vars/ será incluído se o host, executando o play, for um membro do grupo windows , ou linux .
Por exemplo:
a jogada abaixo
dá:
Notas: