为什么我无法使用来更改返回changed_when的任务的状态?failedchanged
例如,我有一个自定义模块,允许我检查卷是否存在,如果卷不存在,它将失败。
剧本片段:
---
- name: Example ansible playbook
tasks:
- name: Check existence of the volume
custom_name_space_my_volume:
name: ABC #name of the volume
changed_when: true
Run Code Online (Sandbox Code Playgroud)
如果该卷ABC不存在,则结果为failed。但为什么没有change_when: true导致结果返回changed呢?
注意:上面的例子可能没有逻辑意义,因为它没有做一些有用的事情。但我只是想用它作为我的问题的样本。
因为当任务失败时failed会覆盖。changed
以 shell 模块为例。默认情况下,它总是显示已更改,因为 ansible 无法决定您的脚本是否做了任何事情。但如果脚本退出时错误代码不是0. 当它这样做时,您希望它显示failed而不是changed。
为了确保您的任务永远不会结束failed,您可以添加failed_when: false.
---
- name: Example ansible playbook
tasks:
- name: Check existence of the volume
custom_name_space_my_volume:
name: ABC #name of the volume
changed_when: true
failed_when: false
Run Code Online (Sandbox Code Playgroud)
这将使您的任务永远不会显示failed,因此最好提供一个合理的表达式来将其标记为failed实际失败的时间。
| 归档时间: |
|
| 查看次数: |
4002 次 |
| 最近记录: |