我有类似的代码:
- name: Running ccache for {{ SOMETHING }}
shell: "{{ item }}"
loop:
- command1
- command2
- command3
when: stat_result.stat.exists
failed_when: >
(rc != 0) or
(rc != 8)
我试图完成以下逻辑工作:
“如果命令的退出代码不是0或8,则成功。”
但是我从中得到的唯一是:
[0; 31分致命:[someIPhere]:失败! => {“ msg”:“条件检查'(rc!= 0)或(rc!= 8)'失败。错误是:评估条件((rc!= 0)或(rc!= 8)时出错):'rc'未定义“} [0m 有什么建议吗?
答案 0 :(得分:0)
您需要注册一个变量以包含命令的结果。此变量将包含循环中每个项目的值,包括rc
。
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#registering-variables
- name: Running ccache for {{ TENANT }}
shell: "{{ item }}"
loop:
- touch /tmp/test
- touch /tmp/test
- touch /tmp/test
when: stat_result.stat.exists
register: command_result
failed_when: command_result.rc not in [ 0, 68 ]