новичок в ansible , не могу найти ссылку на мою проблему, которая не кажется такой редкой ..
У меня есть два хоста в одной группе, каждый из которых со своимпеременные, скажем:
[myHosts]
host1 a=1 b=10
host2 a=2 b=20
Теперь у меня есть задача, которую нужно выполнить дважды только на host1
, один раз с переменными host1
и второй раз со значением a
от host1
и b
от host2
. Если я напишу это так:
- role: my_role
vars:
a_val: {{ a }}
b_val: {{ b }}
loop: "{{ groups['myHosts'] }}"
when: inventory_hostname in groups['myHosts'][0]
Я получу a_val
и b_val
, заполненные только значениями host1
(что хорошо для a_val
, но не для b_val
).
Я знаю, что, похоже, нет причины, по которой я мог бы просто вызывать одну и ту же задачу дважды, ссылаясь на правильное значение b
с некоторыми переменными волшебного значения (hostvars[groups['myHosts'][1]]['b']
, например, сработало бы), но хост могзавтра будет 10, и это будет раздражать (в этом случае условие when
все равно будет в порядке, поскольку все будет выполняться всегда там).
Как можно обобщить, чтобы заполнить b_val
с помощьюправильное значение?