当经常在多台机器上运行我的Ansible剧本时,即使没有任何改变,我总会看到很多“变化”。
这可能有不同的原因。例如,一个简单的原因是注册变量:
tasks:
- name: Fetch docker_compose_version
shell: docker-compose --version
register: docker_compose_version
此块导致
TASK [Fetch docker_compose_version] ********************************************************************************
changed: [mysrv]
如果机器上确实有任何改变的话,我想只看到一个改变。我怎样才能做到这一点?
答案 0 :(得分:3)
这就是changed_when
的用途。例如:
- name: Fetch docker_compose_version
shell: docker-compose --version
register: docker_compose_version
changed_when: false
对于脚本和命令,您需要自己定义条件(没有魔法,常规模块也可以手动处理所有内容)。看看Overriding The Changed Result。