想象一下这个Ansible代码,只有当命令返回的值不是0或1时才应该将任务设置为失败。
- shell: some-command
register: result
failed_when: result.rc not in [0, 1] or 'err' in result.stdout_lines
如何看待使用with_items循环的变体?正如您可能知道的那样,结果结构将包含一个results
字典,用于存储每个项目的结果。
可悲的是,我们希望通过查看所有内容来决定失败的状态。
- shell: "{{ item }}"
register: result
failed_when: ????
with_items:
- ls
- df
答案 0 :(得分:2)
这不是问题。使用与第一个示例中相同的条件:
- shell: "{{ item }}"
register: result
failed_when: result.rc not in [0, 1] or 'err' in result.stdout_lines
with_items:
- ls
- df
正如您可能知道的那样,这些结果结构将包含一个
results
字典,用于存储每个项目的结果。
此结构在执行后创建,并且可以从后续任务访问,而不是从循环内部访问。