2016-05-02 4 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

これを行う必要はありません。 yumモジュールは、すべてのアイテムを一度にインストールするループ用に最適化されています。 yum module docsから

脚本にパッケージ名のループで使用する場合、ansibleはyumのモジュールへの呼び出しを最適化します。ループのたびに1つのパッケージでモジュールを呼び出すのではなく、ループからのすべてのパッケージ名を使用してモジュールを1回呼び出します。 loops docsから

はyumやaptのモジュールが少ないパッケージマネージャのトランザクションを実行するためにwith_itemsを使用しています。

+0

奇妙なことに、最初の実行時にパッケージAがパッケージBに依存するというエラーが発生しました。2回目の実行でエラーがなくなりました。とにかく、ありがとう。 – Istvan

関連する問題