我想在一个合理的剧本中运行一个命令任务,如果失败,我想运行救援部分。我想故障状态是如果命令失败(退出状态!= 0)和标准错误输出不包含某些字符串,这样区分Ansible中的Ansible错误和任务错误?
- block:
- name: some command
command: "command {{ my_var }}"
register: command_status
failed_when: command_status.rc != 0 and "Some text" not in command_status.stderr
changed_when: false
rescue:
- name: error occurred. Rolling back
command: rescue-command
东西上面的问题是,如果变量my_var
是不是以上定义,该命令将失败(与像the field 'args' has an invalid value, which appears to include a variable that is undefined
消息和救援部分将运行,这是不希望的。有什么办法避免Ansible考虑到Ansible特定错误VS在剧中从实际的命令来错误?
我有种预期rc
返回值只能是特定的命令,但这似乎并不如此。
我正在Ansible 2.3
谢谢你。我给这是一个尝试,但我环顾四周,找不到关于此的任何文件。你可以进入?。在这个返回值被究竟是如何设置的详细信息是什么 – ByteFlinger
文档找不到任何地方 – techraf
对不起,按下注释按钮太快文档上。加利福尼亚返回值 – ByteFlinger