cans.package-install
cans.package-install
指定されたDebianパッケージ(.deb
)のリストをインストールするシンプルなAnsibleロールです。
このロールの目的は、多機能ではなく、シンプルで効率的、かつ再利用可能なパッケージインストール方法を提供することです。基本的には、パッケージのリストを与えると、それらをインストールする手順です。
要件
このロールには特別な前提条件はありませんが、ターゲットサーバーがDebianディストリビューションまたはその派生版を使用していることが前提です。
ロール変数
このロール内のすべての変数はpkginstall_
プレフィックスで名前空間化されています。
また、このロールは内部使用のための変数も定義しています。これらは_pkginstall_
がプレフィックスとして付けられており、使用しない方がよいです。
入力変数
このロールが何か処理を行うには、pkginstall_packages_absent
とpkginstall_packages_present
のいずれか、または両方を定義する必要があります。
pkginstall_packages
: 非推奨pkginstall_package_present
を使用してください(デフォルト:[]
)。pkginstall_packages_present
: ターゲットホストにインストールされるべきパッケージ名のリスト(デフォルト:[]
)。pkginstall_packages_absent
: ターゲットホストにインストールされないべきパッケージ名のリスト(デフォルト:[]
)。
デフォルト
pkginstall_apt_package_list_cache_directory
: 利用可能なパッケージリストとパッケージ内容リストを保存するディレクトリのパス。この変数はpkginstall_cache_purge
をtrue
に設定した場合にのみ必要です(以下参照)。変更する必要がある可能性は非常に低いです。(デフォルト:"/var/lib/apt/lists"
)pkginstall_cache_ttl
: パッケージキャッシュの有効期間(秒)(デフォルト: 3600)pkginstall_cache_update
: パッケージをインストールする前にパッケージキャッシュを更新するかどうか(デフォルト:true
)pkginstall_purge
: パッケージを削除する際にその設定ファイルも削除するかどうか(デフォルト:true
)。pkginstall_recommended
: 明示的にインストールされるパッケージに加えて推奨パッケージもインストールするかどうか(デフォルト:false
)。pkginstall_update_cache
: 非推奨pkginstall_cache_update
を使用してください(デフォルト:true
)
依存関係
このロールには正式な依存関係はありませんが、実際に何かを実行するにはpkginstall_packages
変数を上書きする必要があります(参照:以下の例のプレイブック)。
また、追加のパッケージリポジトリをAPTが既に知っているリポジトリに追加するために、cans.package-source
ロールと併用することも検討できます。
例プレイブック
first_role
とsecond_role
の2つのロールがあり、それぞれパッケージのリストを含む変数(first_role_packages
とsecond_role_packages
)を定義していると仮定します。このロールを使用するために、最初に両方のリストを結合したpkginstall_packages
変数を割り当てます。そして、ロールを呼び出します。
- hosts: servers
vars:
pkginstall_packages: "{{ first_role_packages + second_role_packages }}"
roles:
- role: cans.package-install
- role: first_role
- role: second_role
何らかの理由で一度にすべてのパッケージをインストールできない場合(例: first_role
がsecond_role
のパッケージをインストールする前に必要なものをインストールまたは設定する場合):
- hosts: servers
roles:
- role: cans.package-install
pkginstall_packages: "{{ first_role_packages }}"
- role: first_role
- role: cans.package-install
pkginstall_packages: "{{ second_role_packages }}"
- role: second_role
上記の例では、Ansibleがターゲットサーバーに接続する際に、パッケージをインストールするのに十分な権限を持つユーザーが必要です。そうでない場合は、remote_user
またはbecome
のいずれか、または両方のキーワードを使用する必要があります:
- hosts: servers
remote_user: "privileged-user"
vars:
pkginstall_packages: "{{ first_role_packages + second_role_packages }}"
roles:
- role: cans.package-install
become: yes
- role: first_role
- role: second_role
ライセンス
GPLv2
著者情報
著作権 © 2017-2018, Nicolas CANIART.