我在剧本中有以下任务:
- name: task xyz
copy:
src="{{ item }}"
dest="/tmp/{{ item }}"
with_items: "{{ y.z }}"
when: y.z is defined
Run Code Online (Sandbox Code Playgroud)
y.z没有定义,所以我期待跳过任务.相反,我收到:
FAILED! => {"failed": true, "msg": "'dict object' has no attribute 'z'"
Run Code Online (Sandbox Code Playgroud)
我发现: 如何在ansible中定义变量时运行任务? 但似乎我实现了这一点.我在这做错了什么?
这里的问题with_items是之前评估的问题when.其实在现实情况下,您把item在when有条件的.请参阅:循环和条件.
此任务适合您:
- name: task xyz
copy:
src: "{{ item }}"
dest: "/tmp/{{ item }}"
with_items: "{{ (y|default([])).z | default([]) }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4244 次 |
| 最近记录: |