Answers:
依赖目标上任何事物的任何事物在执行时都会获得“已更改”状态,即使它只是回显某些事物的shell命令。
要取消显示“已更改”状态,可以将以下行添加到任务中:
changed_when: false
这个和其他相关的事物在此ansible文档页面上列出。
艰巨的任务应该是幂等的。例如。如果任务没有进行任何修改,则应返回ok
而不是changed
。大多数内置模块和任务已经存在,但是对于诸如command
和的任务,shell
您需要一点帮助。
对于仅检查而不做任何修改的任务,应添加:
changed_when: False
always_run: yes
后者允许任务甚至在检查模式下运行。
为了完整起见,通常将这些任务与另一个进行实际修改的任务结合在一起,例如:
- command: check command that returns true when no change needed
register: result
changed_when: False
always_run: yes
- command: modify command
when: result.rc != 0