Ansible - leia hosts e variáveis de inventário em group_vars / all file
Eu tenho uma dúvida idiota que me mantém preso por um longo tempo. Eu tenho um arquivo de inventário muito banal com hosts e variáveis:
[lb]
10.112.84.122
[tomcat]
10.112.84.124
[jboss5]
10.112.84.122
...
[tests:children]
lb
tomcat
jboss5
[default:children]
tests
[tests:vars]
data_base_user=NETWIN-4.3
data_base_password=NETWIN
data_base_encrypted_password=
data_base_host=10.112.69.48
data_base_port=1521
data_base_service=ssdenwdb
data_base_url=jdbc:oracle:thin:@10.112.69.48:1521/ssdenwdb
O problema é que eu preciso acessar todos esses hosts e variáveis, no arquivo de inventário, a partir do arquivo group_vars / all.
Eu tentei as seguintes maneiras para acessar o IP do host:
{{ lb }}
"{{ hostvars[lb] }}"
"{{ hostvars['lb'] }}"
{{ hostvars[lb] }}
Para acessar uma variável de host, tentei:
"{{ hostvars[tests].['data_base_host'] }}"
Todos eles estão errados !!! Alguém pode me ajudar a descobrir as melhores práticas para acessar hosts e variáveis, não de um manual, mas de um arquivo de variáveis?
EDITAR:
Está bem. Vamos esclarecer.
Problema: Use um host declarado no arquivo de inventário em um arquivo variável, digamos: group_vars / all.
Exemplo: Eu tenho um host de banco de dados comIP:10.112.83.37
.
Arquivo de inventário:
[db]
10.112.83.37
No grupo: vars / all file, quero usar esse IP para criar uma variável.
group_vars / all file:
data_base_url=jdbc:oracle:thin:@{{ db }}:1521/ssdenwdb
Em um modelo, eu uso a variável criada no arquivo group_vars / all.
Arquivo de modelo:
oracle_url = {{ data_base_url }}
O problema é que o{{ db }}
A variável no arquivo group_vars / all não é substituída pelo IP do host do banco de dados. O usuário pode editar apenas o arquivo de inventário.