Ansible - считывать инвентарные хосты и переменные в файл group_vars / all
Я сомневаюсь, что я застрял надолго. У меня очень банальный файл инвентаря с хостами и переменными:
[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'] }}"
Все они не правы !!! Может ли кто-нибудь помочь мне найти лучший метод для доступа к хостам и переменным, не из playbook, а из файла переменных?
РЕДАКТИРОВАТЬ:
Хорошо. Давайте уточним.
Проблема: Используйте хост, объявленный в файле инвентаризации в файле переменной, скажем: group_vars / all.
Пример: У меня есть хост БД сIP:10.112.83.37
.
Инвентарный файл:
[db]
10.112.83.37
В группе: файл vars / all я хочу использовать этот IP для создания переменной.
group_vars / all file:
data_base_url=jdbc:oracle:thin:@{{ db }}:1521/ssdenwdb
В шаблоне я использую переменную, встроенную в файл group_vars / all.
Файл шаблона:
oracle_url = {{ data_base_url }}
Проблема в том, что{{ db }}
переменная в файле group_vars / all не заменяется IP-адресом хоста БД. Пользователь может редактировать только файл инвентаря.