第4章 Ansible ロールの管理

Satellite では、Ansible ロールと Red Hat Enterprise Linux システムのロールをインポートして、ルーティンタスクの自動化に役立てることができます。デフォルトでは Ansible は Satellite と Capsule 上で有効になっています。

カスタムまたはサードパーティーの Ansible ロールを使用する場合は、使用する Capsule または Satellite の /etc/ansible/roles ディレクトリーにそのロールを追加する必要があります。

Satellite 内における Ansible のサポートレベルについての詳細は、『リリースノート』の「新機能および改良された機能」セクションで「Satellite での Ansible のサポート」を参照してください。

Ansible ロールは使用前に /etc/ansible/roles ディレクトリーから Satellite Server にインポートする必要があります。

4.1. Ansible ロールのインポート

Ansible ロールは、Ansible が有効になっている Capsule か、Satellite Server がインストールされている /etc/ansible/roles ディレクトリーからインポートできます。

Ansible ロールをインポートするには、以下の手順を実行します。

  1. Satellite Web UI で、設定 > ロール に移動して、インポートするロールが含まれている Capsule をクリックします。
  2. Ansible ロール一覧からインポートするロールのチェックボックスを選択し、更新 をクリックします。

4.2. Ansible 変数のインポート

Ansible ロールは、変数を使用して、システムの IP アドレスを特定し、別のシステムで設定値として使用する必要がある場合など、具体的な要件があるシステムの設定を微調整します。

Ansible Playbook で Ansible 変数を使用する場合は、Capsule から Ansible 変数をインポートする必要があります。

手順

Ansible ロールの変数をインポートするには、以下の手順を実行します。

  1. Satellite Web UI で、設定 > 変数 に移動します。
  2. ウィンドウの右上で、インポートする Ansible 変数を含む Capsule を選択します。
  3. インポートする Ansible 変数を選択して、更新 をクリックします。

4.3. Ansible 変数の作成

Ansible ロールは、変数を使用して、具体的な要件のあるシステムの設定を微調整します。

通常、使用する Ansible ロール用に Ansible 変数をインポートします。システム設定をさらに調整する必要がある場合には、Satellite で Ansible 変数を作成することも可能です。

手順

  1. Satellite Web UI で、設定 > 変数 に移動します。
  2. 右上隅で 新規 Ansible 変数 をクリックします。
  3. キー フィールドで、変数の名前を入力します。この名前が Ansible ロール名を参照していることを確認します。
  4. 説明 フィールドには、変数の説明を入力します。
  5. Ansible ロール リストから、Ansible ロールを選択して変数を関連付けます。
  6. オプション: Satellite で Ansible 変数をオーバーライドする方法は、「Satellite での Ansible 変数のオーバーライド」を参照してください。
  7. Ansible 変数を保存するには、送信 をクリックします。

4.4. Satellite での Ansible 変数のオーバーライド

Satellite で Ansible ロールを実行する場合には、Satellite を使用して、Ansible 変数よりも Ansible ロールを優先させます。

変数のオーバーライドの優先順位

Ansible ロールを使用して、Effective User 以外のユーザーとしてタスクを実行する場合、Ansible 変数をオーバーライドするための厳密な優先順位があります。オーバーライドする変数が正しい優先順位に従っていることを確認するには、『Ansible User Guide』の「Variable precedence: Where should I put a variable?」を参照してください。

前提条件

Satellite に Ansible 変数がある。

Ansible 変数をインポートする方法は、「Ansible 変数のインポート」 を参照してください。

Ansible 変数を作成する方法は、「Ansible 変数の作成」 を参照してください。

以下の手順は、ホストとホストグループに触れます。ホストとホストグループの詳細は、『ホストの管理』ガイドを参照してください。

手順

Ansible 変数をオーバーライドするには、次の手順を実行します。

  1. Satellite Web UI で、設定 > 変数 に移動します。
  2. Satellite でオーバーライドし、管理する Ansible 変数を選択します。
  3. デフォルトの動作 エリアに移動して、上書き チェックボックスを選択します。
  4. パラメータータイプ から、文字列 または ブール型 変数など、検証する値タイプを選択します。
  5. デフォルト値 フィールドで、変数と一致するものがない場合に使用するデフォルト値を入力します。
  6. オプション: Ansible 変数をプレーンテキストで表示したくない場合は、値の非表示 のチェックボックスを選択し、Satellite Web UI で変数のコンテンツをアスタリスクとして表示します。
  7. オーバーライド設定を保存するには、送信 をクリックします。

Ansible 変数を使用するには、ホストまたはホストグループにパラメーターとして変数を追加するか、グローバルパラメーターとして変数を追加します。

ホストグループの場合:

  1. Web UI で、設定 > ホストグループ に移動し、使用するホストグループ名を選択します。
  2. パラメーター タブをクリックして、ホストのグループパラメーター のエリアで、パラメーターの追加 をクリックします。
  3. 名前 フィールドに、Ansible 変数名を追加します。
  4. タイプ リストから、検証する変数タイプを選択します。
  5. フィールドで、変数の値を入力します。

ホストの場合:

  1. Satellite Web UI で ホスト > すべてのホスト に移動して、使用するホストで、編集 ボタンをクリックします。
  2. パラメーター タブをクリックして、ホストのパラメーター のエリアで、パラメーターの追加 をクリックします。
  3. 名前 フィールドに、Ansible 変数名を追加します。
  4. タイプ リストから、検証する変数タイプを選択します。
  5. フィールドで、変数の値を入力します。

グローバルパラメータとして追加する手順:

  1. Satellite Web UI で 設定 > グローバルパラメーター に移動して、パラメーターの作成 をクリックします。
  2. 名前 フィールドに、Ansible 変数名を追加します。
  3. タイプ リストから、検証する変数タイプを選択します。
  4. フィールドで、変数の値を入力します。
  5. オプション: Ansible 変数をプレーンテキストで表示したくない場合は、値の非表示 のチェックボックスを選択し、Satellite Web UI で変数のコンテンツをアスタリスクとして表示します。

4.5. Red Hat Enterprise Linux システムロールの追加

Red Hat Enterprise Linux システムロールは、Red Hat Enterprise Linux サブシステムの設定インターフェースで、Red Hat Enterprise Linux システムロールを利用すると Satellite に Ansible ロールを追加できます。Satellite で Ansible ロールを使用すると、設定がより速くかつ容易に実行できます。

Red Hat Enterprise Linux システムロールについての詳細は、「Red Hat Enterprise Linux System Roles」を参照してください。

Extras チャンネルに登録する前に、「Red Hat Enterprise Linux Extras の製品ライフサイクル」の記事を参照してください。

Red Hat Enterprise Linux システムロールの追加方法:

  1. rhel-7-server-extras-rpms リポジトリーが有効になっていることを確認します。

    # subscription-manager repos --enable=rhel-7-server-extras-rpms
  2. rhel-system-roles パッケージをインストールします。

    # satellite-maintain packages install rhel-system-roles

    rhel-system-roles パッケージは /usr/share/ansible/roles/ にダウンロードされます。インポート前に修正を加えることができます。

  3. Satellite Web UI で、設定 > ロール に移動して、インポートするロールが含まれている Capsule をクリックします。
  4. Ansible ロール一覧からインポートするロールのチェックボックスを選択し、更新 をクリックします。

これで Ansible ロールをホストまたはホストグループに割り当てることができます。詳細については、『ホストの管理』の「既存のホストへの Ansible ロールの割り当て」を参照してください。

また、Ansible のジョブテンプレートに追加すると、ロール内に含まれているモジュールを Ansible playbooks に追加することもできます。ジョブテンプレートには hosts:all 行を含める必要があります。詳細については、Red Hat Enterprise Linux (RHEL) System Roles を参照してください。