Ansible - зацикливание динамически созданных элементов списка [duplicate]

Я согласен с ответом от zacherates.

Но вы можете сделать вызов intern () в ваших нелиберальных строках.

Из примера zacherates:

// ... but they are not the same object
new String("test") == "test" ==> false 

Если вы ставите нелитеральное равенство строки, это правда

new String("test").intern() == "test" ==> true 
5
задан techraf 9 January 2018 в 12:59
поделиться

1 ответ

Per Ansible FAQ :

Другое правило - «усы не стекают». Мы часто видим это:

{{ somevar_{{other_var}} }} 

Вышеупомянутое НЕ РАБОТАЕТ, если вам нужно использовать динамическую переменную, используйте словарь хостов или vars соответственно:

{{ hostvars[inventory_hostname]['somevar_' + other_var] }}

Итак, в вашем случае:

- debug: msg={{hostvars[inventory_hostname][Component].community_release_num}}

Или:

- debug: msg={{vars[Component].community_release_num}}

Или (поскольку Ansible 2.5):

- debug: msg={{(lookup('vars', Component)).community_release_num}}
8
ответ дан techraf 15 August 2018 в 23:55
поделиться
Другие вопросы по тегам:

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