chasinglogic.os_packages
Ansible ロール: os-packages
変数ファイルを使用してパッケージをインストールします。
このロールを使用するタイミングと理由
複数のシステムの設定を指定する時、特別な設定が不要な OS パッケージをインストールする必要があります。例えば、ビルドサーバー用の build-essential
や gcc
などです。これらのファイルをインストールするために、多くの専用ロールを作成するのは非常に手間がかかります。「パッケージごとに1つのロール」という方法を取らなくても、様々なパッケージマネージャーの細かい設定を扱う複数のパッケージリストがロール内に分散してしまうと、相互に関連を持たせるのが難しく、最新の状態を保つのが大変になります。
このロールを使うことで、パッケージリストを変数ファイルにまとめて、相互参照を簡単に行うことができます。異なる環境でも機能し、例えば deb_packages
を指定していても、apt がインストールされていないホストに Ansible を実行している時には、その deb_packages
は無視されます。条件を追加する必要はありません。
このロールを、設定や他の準備が多く必要なソフトウェアのインストールに使うことは推奨されません。例えば、Nextcloud、NGINX、または Apache などは、追加の設定(SELinux、設定ファイル、ファイアウォールルールなど)が必須になるため、専用のロールを作るべきです。
ロール変数
名前 | 説明 | タイプ | デフォルト | 必須 |
---|---|---|---|---|
packages_apt_globally_update_cache | パッケージインストールの前にグローバルな apt update を実行するかどうかを示します。 |
boolean | true | いいえ |
generic_packages | Ansible の package モジュールを使用するパッケージのリストです。多くのパッケージはLinuxディストリビューション間で一般的かつ一貫性のある名前を持っています。これを変数に入れます。 |
list | [] | いいえ |
deb_packages | .deb パッケージのために Ansible のターゲットシステムに基づく適切なパッケージモジュールを使用するパッケージのリストです。 | list | [] | いいえ |
rpm_packages | .rpm パッケージのために Ansible のターゲットシステムに基づく適切なパッケージモジュールを使用するパッケージのリストです。 | list | [] | いいえ |
pacman_packages | pacman Ansible パッケージモジュールを使用するパッケージのリストです。 | list | [] | いいえ |
generic_package_specs | Ansible の package モジュールを使用するパッケージ仕様のリストです。多くのパッケージはLinuxディストリビューション間で一般的かつ一貫性のある名前を持っています。これを変数に入れます。 |
list | [] | いいえ |
deb_package_specs | .deb package_specs のために Ansible のターゲットシステムに基づく適切なパッケージモジュールを使用するパッケージ仕様のリストです。 | list | [] | いいえ |
rpm_package_specs | .rpm package_specs のために Ansible のターゲットシステムに基づく適切なパッケージモジュールを使用するパッケージ仕様のリストです。 | list | [] | いいえ |
pacman_package_specs | pacman Ansible パッケージモジュールを使用するパッケージ仕様のリストです。 | list | [] | いいえ |
依存関係の指定
変数 generic_packages
、deb_packages
、pacman_packages
、rpm_packages
はインストールするパッケージのリストです。これは単にインストールされるべき文字列のリストです:
generic_packages:
- gcc
- tmux
- vim
存在する以外の状態を使用する
変数 generic_package_specs
、deb_package_specs
などは、パッケージインストールのより細かい制御のために使用されます。また、パッケージを削除したり、最新バージョンをインストールしたり、Ansible の出力でインストールされたパッケージの特定のリストを取得するために使用できます。パッケージ仕様を使用する方法は以下の通りです:
generic_package_specs:
- name: gcc
state: latest
deb_package_specs
リストは、update_cache
オプションも指定できます:
deb_package_specs:
- name: gcc
state: latest
update_cache: yes
例のプレイブック
- hosts: all
roles:
- role: os-packages
ライセンス
ansible-galaxy install chasinglogic.os_packages