Size: a a a

2021 March 05

TG

Timur Gadiev in Ansible
Казанский
Сначала разве собираются не host_vars, потом group_vars?
Все переменные ложатся в словарь хостварс.
источник

TG

Timur Gadiev in Ansible
Сначала групповые, потом переменные хостов.
источник

TG

Timur Gadiev in Ansible
Казанский
Я пока не вижу, в каком месте она рекурсия.
Хостварс разворачиваются позже, чем групварс.
источник

TG

Timur Gadiev in Ansible
А вы из вторых пытаетесь обращаться к первым по прямой ссылке. Не надо так.
источник

YZ

Yerzhan Zhiyentayev in Ansible
по идее оно должно работать
источник

К

Казанский in Ansible
Timur Gadiev
У хостварс приоритет, к слову, выше, чем у групварс. И когда вы в группе ссылаетесь на хостварс другого хоста, вы ломаете весь слой абстракции.
Но тогда пользы от group_vars становится намного меньше.
источник

TG

Timur Gadiev in Ansible
Yerzhan Zhiyentayev
по идее оно должно работать
Оно может работать в определенных условиях. Но вовсе не обязательно, т.к. нарушены слои абстракции.
источник

SP

Sergey Pechenkó in Ansible
источник

TG

Timur Gadiev in Ansible
Казанский
Но тогда пользы от group_vars становится намного меньше.
Польза огромная. В group_vars определяются переменные сразу для целой группы хостов. А хост может входить одновременно в множество групп.
источник

TG

Timur Gadiev in Ansible
Вообще обращение напрямую к hostvars имеет смысл только на уровне плея, но никак не в инвентаре.
источник

YZ

Yerzhan Zhiyentayev in Ansible
Timur Gadiev
Вообще обращение напрямую к hostvars имеет смысл только на уровне плея, но никак не в инвентаре.
иногда приходится
источник

TG

Timur Gadiev in Ansible
Потому что hostvars заполняется переменными согласно всем слоям абстракции лишь в момент плея.
источник

К

Казанский in Ansible
Timur Gadiev
Оно может работать в определенных условиях. Но вовсе не обязательно, т.к. нарушены слои абстракции.
Оно работает при работе роли по firewall, в котором template разворачивает iptables рулсет.
Но не работает, когда из плейбука - hosts: localhost я пытаюсь jinj'ей достать это значение.
источник

TG

Timur Gadiev in Ansible
Yerzhan Zhiyentayev
иногда приходится
В инвентаре? Зачем?
источник

YZ

Yerzhan Zhiyentayev in Ansible
Timur Gadiev
В инвентаре? Зачем?
источник

TG

Timur Gadiev in Ansible
Казанский
Оно работает при работе роли по firewall, в котором template разворачивает iptables рулсет.
Но не работает, когда из плейбука - hosts: localhost я пытаюсь jinj'ей достать это значение.
Ну, правильно. Когда вы обращаетесь плеем к нужным хостам, их hostvars разворачиваются. А когда плей на другие хосты, то нет. Инвентарь просто не успевает отработать согласно приоритетам.
источник

К

Казанский in Ansible
Timur Gadiev
Потому что hostvars заполняется переменными согласно всем слоям абстракции лишь в момент плея.
Так вот же, в запускаю плейбуку, в первом плее просто собираю факты по хосту, во втором - пытаюсь обратиться к этим хостварсам, а мне вместо значения даёт "{{ hostvars... }}"
источник

К

Казанский in Ansible
Он же не ругается, что HostVars object has no attribute ...
источник

TG

Timur Gadiev in Ansible
источник

К

Казанский in Ansible
Это мне и кажется странным
источник