У меня есть сомнительное сомнение, которое заставляет меня застрять надолго. У меня очень банальный файл инвентаря с хостами и переменными:
[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
Проблема заключается в том, что мне нужно получить доступ ко всем этим хостам и переменным в файле инвентаризации из файла group_vars/all.
Я пробовал следующие способы доступа к IP-адресу хоста:
{{ lb }}
"{{ hostvars[lb] }}"
"{{ hostvars['lb'] }}"
{{ hostvars[lb] }}
Чтобы получить доступ к переменной хоста, я попытался:
"{{ hostvars[tests].['data_base_host'] }}"
Все они ошибаются!!! Может ли кто-нибудь помочь мне найти наилучшую практику для доступа к хостам и переменным, а не из учебника, но из файла переменных?
EDIT:
Ok. Давайте уточним.
Проблема: используйте хост, объявленный в файле инвентаризации в файле переменных, скажем: group_vars/all.
Пример: у меня есть хост DB с IP:10.112.83.37
.
Файл инвентаризации:
[db]
10.112.83.37
В группе: vars/all file я хочу использовать этот IP для создания переменной.
group_vars/весь файл:
data_base_url=jdbc:oracle:thin:@{{ db }}:1521/ssdenwdb
В шаблоне я использую переменную, встроенную в файл group_vars/all.
Файл шаблона:
oracle_url = {{ data_base_url }}
Проблема заключается в том, что переменная {{ db }}
в файле group_vars/all не заменяется IP-адресом хоста DB. Пользователь может редактировать файл инвентаризации.