我在剧本中有以下任务:
- name: task xyz
copy:
src="{{ item }}"
dest="/tmp/{{ item }}"
with_items: "{{ y.z }}"
when: y.z is defined
y.z
未定义,因此我希望跳过该任务。相反,我收到:
FAILED! => {"failed": true, "msg": "'dict object' has no attribute 'z'"
我已经发现:当变量在ansible中未定义时如何运行任务?但看来我就是这么做的。我在这里做错了什么?
这里的问题是with_items
之前评估过when
。实际上在真实场景中你放置item
in the when
有条件的。看:循环和条件.
此任务将适合您:
- name: task xyz
copy:
src: "{{ item }}"
dest: "/tmp/{{ item }}"
with_items: "{{ (y|default([])).z | default([]) }}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)