Ansible

Ansible で RPM を扱う

More than 5 years have passed since last update.

[2013-08-28 追記]

なんと,yum module で,RPM パッケージを指定してインストールすることができるそうです。

なので,下記の hack は必要ありません。

yamazaki-masahide さん,ご指摘ありがとうございました。

具体的な使用方法は,yamazaki-masahide さんのコメントを見ていただくか

本家ドキュメントの yum module の examples をご覧ください。


RPM を扱う module がなさそうだったので,書きました (書き捨てだけど)。

https://gist.github.com/dayflower/6350248#file-rpm

プロジェクトディレクトリの library/ ディレクトリ以下に rpm という名前でおいておけば,自動的に読み込んでくれます(Bundling Ansible Modules With Playbooks | Best Practices | AnsibleWorks)。

使い方は,以下のような感じです。

---

- tasks:
- rpm: state=installed file=foo.rpm
- rpm: state=removed file=foo.rpm
- rpm: state=removed name=foo
- rpm: state=installed name=failed_if_not_installed

RPM パッケージは,事前にリモート (target host) においてある必要があります。

(たぶん third-party Ansible module だと,ほぼこうせざるをえないと思う)

name ベースで存在チェック (やアンインストール) をする場合は,RPM パッケージをおいておく必要はありません。(例示の後者2つ)

実はすでにいい module あるよ,とか,

こうするほうが定石だよ,とか,

こう書くのはおかしい,とか,

情報があれば,お待ちしています。