AnsibleのModule:yum
お疲れ様です。伊藤です。
yumについてです。まずは説明文はこちら。
yumパッケージマネージャを使用して、パッケージとグループをインストール、アップグレード、削除、および一覧表示します。
これもそのまんまですね。つまりはLinuxのyumと同等ということで。
オプションはこちら。
| パラメータ | 必須 | デフォルト | 選択肢 | 備考 |
|---|---|---|---|---|
| conf_file | no | トランザクションに使用するリモートのyum構成ファイル。 | ||
| disable_gpg_check | no | no | yes no | インストールされているパッケージのシグネチャのGPGチェックを無効にするかどうか。 状態が存在または最新の場合にのみ効果があります。 |
| disablerepo | no | インストール/アップデート操作を無効にするリポジトリの Repoid これらのレポはトランザクションを超えて存続しません。 複数のreposを指定する場合は、それらを "、"で区切ります。 | ||
| enablerepo | no | インストール/アップデート操作を有効にするリポジトリの Repoid これらのレポはトランザクションを超えて存続しません。 複数のreposを指定する場合は、それらを "、"で区切ります。 | ||
| exclude | no | state = present、またはlatestのときに除外するパッケージ名 | ||
| installroot | no | / | すべてのパッケージがインストールされる相対的なインストールルートを指定します。 | |
| list | no | yum list |
||
| name | yes | パッケージ名、または name-1.0 のようなバージョンのパッケージ指定子。 state = latestを使用する場合、これは '*'となります。これは実行を意味します:yum -y update。 urlまたはローカルパスをrpmファイルに渡すこともできます(state = presentを使用)。 いくつかのパッケージを操作するには、コンマで区切られたパッケージのリストまたは(2.0以降)パッケージのリストを受け入れることができます。 | ||
| skip_broken | no | no | yes no | 変換によって問題の原因となっているパッケージを削除することで、デプロソルブの問題を解決します。 |
| state | no | present | present latest absent | presentの場合はパッケージをインストールします。latestの場合は最新版に更新します。absentの場合はパッケージをアンインストールします。 |
| update_cache | no | no | yes no | yumにキャッシュが期限切れであるかどうかを確認させ、必要に応じて再ダウンロードする。 状態が存在または最新の場合にのみ効果があります。 |
| validate_certs | no | yes | yes no | これは、rpmのソースとしてhttps urlを使用している場合にのみ適用されます。例えばローカルインストール用。 noに設定すると、SSL証明書は検証されません。これは、ソースサイトの確認を避けるため、自己署名証明書を使用して個人的に管理されるサイトではnoに設定する必要があります。2.1より前は、これがyesに設定されているかのようにコードが機能しました。 |
意外に少ないですね。
続いてPlaybookの例です。以前はrpmを指定してインストールが出来なかったのですが、こちらを見るとあっさりできてますね。
# Apacheの最新バージョンをインストールする
- name: install the latest version of Apache
yum:
name: httpd
state: latest
# Apacheパッケージを削除する
- name: remove the Apache package
yum:
name: httpd
state: absent
# テスト用のレポから最新のバージョンのApacheをインストールする
- name: install the latest version of Apache from the testing repo
yum:
name: httpd
enablerepo: testing
state: present
# 特定のバージョンのApacheをインストールする
- name: install one specific version of Apache
yum:
name: httpd-2.2.29-1.4.amzn1
state: present
# すべてのパッケージをアップグレードする
- name: upgrade all packages
yum:
name: '*'
state: latest
# リモートrepoからnginx rpmをインストールする
- name: install the nginx rpm from a remote repo
yum:
name: http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
state: present
# ローカルファイルからnginx rpmをインストールする
- name: install nginx rpm from a local file
yum:
name: /usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm
state: present
# '開発ツール'パッケージグループをインストールする
- name: install the 'Development tools' package group
yum:
name: "@Development tools"
state: present
# 'Gnomeデスクトップ'環境グループをインストールする
- name: install the 'Gnome desktop' environment group
yum:
name: "@^gnome-desktop-environment"
state: present
# 可能なパッケージを一覧表示し、結果を登録して後でデバッグする。
- name: List ansible packages and register result to print with debug later.
yum:
list: ansible
register: resultこの例を見るだけで大体のことは問題なくできるかと思います。外部接続ができない環境ではcopyモジュールでrpmファイルをコピー後、yumモジュールでインストールの流れになるかと思います。
お疲れ様でした。