2017-01-08 31 views
14

我試圖用Ansible運行以下兩個命令:如何運行apt更新,並通過Ansible外殼升級

sudo apt-get update && sudo apt-get upgrade -y

我知道有ansible你可以使用:

ansible all -m shell -u user -K -a "uptime"

會運行下面的命令嗎?或者我必須使用raw命令

ansible all -m shell -u user -K -a "sudo apt-get update && sudo apt-get upgrade -y"

+0

你試過了嗎?你爲什麼喜歡這個與內置的'apt'模塊? – tedder42

+0

我是剛剛嘗試理解的新手,我會對apt模塊做出承諾,但不確定是否也升級了? – nadermx

回答

29

的某種我不推薦使用殼牌這一點,因爲Ansible有專爲剛剛爲此,容易模塊。我已經詳細使用下面的apt。

在一個劇本,你可以更新和升級,像這樣:可以省略

- name: Update and upgrade apt packages 
    become: true 
    apt: 
    upgrade: yes 
    update_cache: yes 
    cache_valid_time: 86400 #One day 

cache_valid_time值。它的用途從docs

更新apt cache(如果它早於cache_valid_time)。此 選項在幾秒鐘內設置。

因此,如果您不想在最近才更新緩存時更新緩存,則很有必要。

要做到這一點,你可以運行一個特設的命令:

$ ansible all -m apt -a "upgrade=yes update_cache=yes cache_valid_time=86400" --become

臨時命令詳細here

請注意,我用的--becomebecome: true描述。這是通過Ansible典型的特權升級的例子。您使用-u user-K(請求特權升級密碼)。使用哪個適合你,這只是爲了向你展示最常見的形式。