第4章 Ansible ロールの管理

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

4.1. Ansible ロールを実行するためのデプロイメントの設定

この手順を使用して、Ansible ロールを実行するように Satellite デプロイメントを設定します。

手順

  1. ロールの使用元にする Satellite と 全 Capsule の /etc/ansible/roles ディレクトリーにロールを追加します。カスタムまたはサードパーティーの Ansible ロールを使用Iする場合には、外部のバージョン管理システムが Satellite と Capsule の間でロールを同期するように設定してください。
  2. ホストで Ansible ロールの実行に使用する全 Capsule で、Ansible プラグインを有効にします。

    # satellite-installer --scenario capsule \
    --enable-foreman-proxy-plugin-ansible true
  3. SSH 鍵を配布して、Capsule が SSH でホストに接続できるようにします。詳細は、『ホストの管理』ガイドの「リモート実行のための SSH 鍵の配布」を参照してください。Satellite は、リモート実行ジョブの実行と同様に、Ansible ロールを実行します。
  4. Ansible ロールを Satellite にインポートします。詳細は、「Ansible ロールのインポート」を参照してください。
  5. コンテンツビューにホストを登録するには、『ホストの管理』ガイドの「Ansible ロールの使用」を参照してください。

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

Satellite または Ansible を有効にした Capsule の /etc/ansible/roles ディレクトリーから Ansible ロールをインポートできます。インポートするロールが ロールを使用する全 Capsule の /etc/ansible/roles ディレクトリーに配置されているようにしてください。

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

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

4.3. Ansible 変数のインポート

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

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

手順

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

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

4.4. 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.5. 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.6. 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 システムロールに関するサポートレベルの最新情報および一般情報は、「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」を参照してください。