условие when и выпадает с ошибкой, так как предыдущие пропущены, из-за нормальной работы when.
Таска - set_fact с loop: "{{ lookup('dict',
Может есть какие-то причины и лукап всегда выполняется не смотря на when?
Больше данных нужно. Плей хотя бы.
- name: Set mail accounts data set_fact: mail_accs_encpswd_d: "{{ mail_accs_data_d | default({}) | combine({item.split(' ')[0]: {'PARAM_N': item.split(' ')[1]}})}}" loop: "{{ mail_accs_data.stdout.split('\n') }}" when: - migr_state == "copy" - name: Edit mail accounts data set_fact: mail_accs: "{{ mail_accs | combine({item.key: item.value}, recursive=True)}}" loop: "{{ lookup('dict', mail_accs_data_d, wantlist=True) }}" when: - migr_state == "copy"
Там loop. Он проверяет when на каждую итерацию цикла. Так что в любом случае loop:... выполняется
вот я так и догадался. Значит либо отказаться от when на весь плей, либо сделать пустой дикт.
Сделайте там в loop: | default([])
ммм, вариант, сейчас разберусь как. Спасибо.
скорее уж default([], true)
Сделал loop: "{{ lookup('dict', mail_accs_data_d={}, wantlist=True) }}" Работает вроде.
Если у вас несколько тасок подряд исполняются по одному и тому же условию то логичнее собрать их в блок и повесить одно условие на весь блок, или вытащить таски в отдельный файл и сделать include по условию
да, я уже смотрю на то, чтобы причесать это таким образом. Это логичнее и красивее.
Обсуждают сегодня