Задать вопрос
SwoDs
@SwoDs
PHP YII2

Как обратиться к переменным хоста в Ansible?

У меня есть группа, в ней хост

[app_admin]
adm-01.local


Для обращения к переменным хоста, которые хранятся в папке host_vars, я могу использовать такой способ: hostvars[groups["app_admin"][0]]["some_var"]

Но меня терзают сомнения что можно правильнее, что будет если у меня не 1 хост, а 5, где гарантии что они будут соблюдать порядок как в файле инвентория.

Собственно вопрос: можно ли как-то обратиться к переменным хоста через некий альяс или какой-то другой, более правильный, способ
  • Вопрос задан
  • 1191 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
SwoDs
@SwoDs Автор вопроса
PHP YII2
Все оказалось просто:

в инвентори файле задаем:
[app_admin]
adm_01 ansible_host=adm-01.local

или можно просто:
[app_admin]
adm_01

но тогда вам нужно прописать в host_vars в файле adm_01.yml: ansible_host: adm-01.local

Теперь в ролях\таксках можно обращаться через этот альяс hostvars["req_db"]["request_db"]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mureevms
Все гораздо проще. Если переменная указана в host_vars или group_vars, то просто ссылайтесь на нее из любого места.
Для group_vars. Файл group_vars/app_admin:
myvar: my_value_for_app_admin_group
Т.е. для всех хостов, входящих в группу app_admin, определена переменная myvar со значением my_value_for_app_admin_group. Если надо для каких-то хостов переопределить переменную, то следует использовать host_vars. Файл host_vars/adm-01.local:
myvar: my_value_for_adm-01.local_only

Ссылаться на переменную в роли, плейбуке или теплейте надо так {{ myvar }}.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы