2016-04-20 80 views
0

時,我喜歡這種模式在Ansible:Ansible:防止「改爲」循環

tasks: 
    - name: install packages 
    apt: 
     name: "{{ item }}" 
     update_cache: yes 
     cache_valid_time: 3600 
     state: latest 
    with_items: 
     - build-essential 
     - git 
     - libjpeg-dev 

不過,我每次都獲得改變的通知,即使什麼也沒有安裝。我不想設置changed_when: False。有沒有辦法從這個循環中獲得適當的更改狀態?

更新如果通過apt安裝了任何東西,我希望更改爲True。如果已經安裝了所有東西,並且在循環顯示此列表時apt沒有做任何工作,那麼我想將其更改爲False。

我正在使用Ansible 2.0.1.0。

+0

你能詳細說一下你的意思嗎?「獲得適當的改變狀態」? – helloV

+1

你使用的是什麼版本?我猜你每次在指定update_cache時都會更改:是的 – Petro026

+0

@ Petro026就是這樣。如果你喜歡的話,把它寫成答案,我會接受它。 –

回答

1

更改的指示是由於每次運行任務時執行apt cache(apt-get update)所致。如果您只想知道是否安裝了軟件包,請刪除update_cache:yes指令或將其設置爲update_cache:no。

0

在應用@Petro026的accepted answer之後,應該是這樣。

tasks: 
    - name: install packages 
    apt: 
     name: "{{ item }}" 
     state: latest 
    with_items: 
     - build-essential 
     - git 
     - libjpeg-dev