2016-05-02 116 views
1

我想在同一時間使用yum安裝多個RPM包。我有with_items數組中的項目列表。有沒有一種方法來連接它和一次性安裝?使用Ansible,如何在同一時間安裝使用yum多個RPM包?

- name: Install MongoDB RPM 
    yum: name={{ list | join(" ") }} state='present' 
    with_items: 
    - {'name': mongodb-org,   'file': mongodb-org-3.2.6-1.el6.x86_64.rpm} 
    - {'name': mongodb-org-mongos, 'file': mongodb-org-mongos-3.2.6-1.el6.x86_64.rpm} 
    - {'name': mongodb-org-server, 'file': mongodb-org-server-3.2.6-1.el6.x86_64.rpm} 
    - {'name': mongodb-org-shell, 'file': mongodb-org-shell-3.2.6-1.el6.x86_64.rpm} 
    - {'name': mongodb-org-tools, 'file': mongodb-org-tools-3.2.6-1.el6.x86_64.rpm} 
    sudo: yes 

回答

1

有沒有必要這樣做。百勝模塊進行了優化的for循環來一氣呵成安裝的所有項目。

yum module docs

當與包名稱的一個劇本循環中使用,ansible優化該呼叫到蔭模塊。相反,通過每一次循環中調用該模塊在單個封裝中,ansible所有從環路的包名的調用模塊一次。

loops docs

百勝和容易模塊使用with_items執行較少的包管理事務。

+0

奇怪了,我那個包A依賴於包B.隨着第二次運行錯誤走了第一輪得到了一個錯誤。不管怎麼說,多謝拉。 – Istvan