2017-08-15 70 views
0

當我在許多機器上定期運行我的Ansible操作手冊時,即使沒有任何變化(不再有),我也會顯示許多「變化」。運行Ansible時如何減少顯示的「更改」數量?

這可能有不同的原因。例如,一個簡單的原因是註冊變量:

tasks: 
- name: Fetch docker_compose_version 
    shell: docker-compose --version 
    register: docker_compose_version 

此塊導致

TASK [Fetch docker_compose_version] ******************************************************************************** 
changed: [mysrv] 

我希望只看到一個變化,如果有真的改變的東西在機器上。我怎樣才能做到這一點?

+0

如果對我的問題沒有「全局」答案,請告訴我。在註冊變量時,我會將標題改爲「如何避免打印不必要的變化」。 – dsteinkopf

回答

3

這就是changed_when的用途。例如:

- name: Fetch docker_compose_version 
    shell: docker-compose --version 
    register: docker_compose_version 
    changed_when: false 

對於腳本和命令,您需要自己定義條件(沒有魔術背後,常規模塊也會手動處理所有內容)。看看Overriding The Changed Result

+0

非常感謝。這有幫助。我從未在手冊中「看見」過這一節。精細。對於'changed_when'另一個例子是: - 名稱:設置vim默認 命令:更新替代--set編輯/usr/bin/vim.basic 寄存器:command_result 環境: LANG:C changed_when:「 '在command_result.stdout中使用' – dsteinkopf