第7章 Red Hat Satellite と Ansible Tower の統合

Red Hat Satellite 6.5 と Ansible Tower を統合して、Ansible Tower の動的インベントリーソースとして Satellite Server を使用します。

また、ホストまたは Ansible Tower のいずれかから、Satellite が管理するホストで Playbook を実行するようにプロビジョニングコールバック機能を使用できます。Satellite Server から新しいプロビジョニングする際に、プロビジョニングコールバック機能により、Ansible Tower から Playbook を実行します。Playbook は、以下のキックスタートデプロイメントに従うようにホストを設定します。

7.1. Satellite Server を動的インベントリー項目として Ansible Tower に追加

Satellite Server をダイナミックインベントリー項目として Ansible Tower に追加するには、Ansible Tower に Satellite Server ユーザーの認証情報を作成し、 Ansible Tower ユーザーを認証情報に追加してから、インベントリーソースを設定する必要があります。

前提条件

  • 必要なパーミッションフィルターなど統合ロールが割り当てられている Satellite Server ユーザーが必要になります。ユーザー、ロール、およびパーミッションフィルターの管理方法は、『Red Hat Satellite の管理』「ユーザーとロールの管理」および「ロールの作成および管理」を参照してください。
  • 以下のパーミッションフィルターを指定して、ロールをユーザーに割り当てる必要があります。

    表7.1 パーミッションフィルター

    リソースパーミッションアクセスの説明

    ホスト

    view_hosts

    Satellite Server ホストを表示します。

    Host Group (ホストグループ)

    view_hostgroups

    Satellite Server ホストグループを表示します。

    ファクト値

    view_facts

    Satellite Server ファクトを表示します。

  • Satellite Server と Ansible Tower は、同じネットワークまたはサブネット上にホストする必要があります。

手順

Satellite Server を動的インベントリー項目として Ansible Tower に追加します。

  1. Ansible Tower Web UI で、Satellite に対して認証情報を作成します。認証情報の作成方法は『Ansible Tower ユーザーガイド』「新規認証情報の追加」および「Red Hat Satellite 6 認証情報」を参照してください。

    表7.2 Satellite の認証情報

    認証情報の種類:Red Hat Satellite 6

    Satellite 6 URL:

    https://satellite.example.com

    ユーザー名:

    統合ロールを持つ Satellite ユーザーのユーザー名

    パスワード:

    Satellite ユーザーのパスワード

  2. 新しい認証情報に Ansible Tower ユーザーを追加します。ユーザーを認証情報に追加する方法は『Ansible Tower ユーザーガイド』「認証情報の使用開始」を参照してください。
  3. 新しいインベントリーを追加します。詳細は 『Ansible Tower ユーザーガイド』「新規インベントリーの追加」を参照してください。
  4. 新規インベントリーで、Satellite Server をインベントリーソースとして追加し、以下のインベントリーソースオプションを指定します。インベントリーを追加する方法は『Anabilities Tower ユーザーガイド』「ソースの追加」を参照してください。

    表7.3 インベントリーソースオプション

    ソースRed Hat Satellite 6

    認証情報

    Satellite Server 用に作成した認証情報

    上書き

    選択

    変数の上書き

    選択

    起動時の更新

    選択

    キャッシュのタイムアウト

    90

  5. 追加したソースを同期するようにしてください。

7.2. ホストへのプロビジョニングコールバックの設定

Satellite でホストを作成すると、Ansible Tower を使用して Playbook を実行して新たに作成したホストを設定できます。これは、Ansible Tower では、プロビジョニングコールバック と呼ばれます。

プロビジョニングコールバック機能を使用して、プロビジョニングプロセスの一部として、Ansible Tower から Playbook の実行をトリガーします。Playbook は、キックスタートのデプロイメント後にホストを設定します。

プロビジョニングコールバックの詳細は『Anabilities Tower ユーザーガイド』「プロビジョニングコールバック」を参照してください。

Satellite Server の Kickstart Default テンプレートおよび Kickstart Default Finish テンプレートには、以下の 3 つのスニペットが含まれます。

  1. ansible_provisioning_callback
  2. ansible_tower_callback_script
  3. ansible_tower_callback_service

ホストまたはホストグループにパラメーターを追加して、新規作成されたホストでの Ansible Playbook の実行にスニペットが使用可能な認証情報を指定できます。

前提条件

プロビジョニングコールバックを設定する前に、Satellite を動的インベントリーとして Ansible Tower に追加する必要があります。詳細は「Satellite と Ansible Tower の統合」を参照してください。

Ansible Tower Web UI で、以下のタスクを実行する必要があります。

  1. 新規ホスト向けに、マシンの認証情報を作成します。Satellite で作成したホストに割り当てる予定の認証情報に、同じパスワードを入力するようにしてください。詳細情報は、『Ansible Tower ユーザーガイド』「新規認証情報の追加」を参照してください。
  2. プロジェクトを作成します。詳細情報は、『Ansible Tower ユーザーガイド』「プロジェクト」を参照してください。
  3. ジョブテンプレートをプロジェクトに追加します。詳細情報は、『Ansible Tower ユーザーガイド』「ジョブテンプレート」を参照してください。
  4. ジョブテンプレートで、プロビジョニングコールバックを有効にし、ホストの設定キーを生成し、ジョブテンプレートの template_ID をメモする必要があります。ジョブテンプレートの詳細は 『Ansible Tower ユーザーガイド』「ジョブテンプレート」を参照してください。

手順

Satellite の新規ホストにプロビジョニングコールバックを設定するには、以下の手順を実行します。

  1. Red Hat Satellite Web UI で、設定 > ホストグループ に移動します。
  2. ホストグループを作成するか、既存のホストグループを編集します。
  3. ホストグループウィンドウで パラメーター タブをクリックします。
  4. Add Parameter をクリックします。
  5. 新規パラメーターごとに、以下の情報を入力します。

    表7.4 ホストパラメーター

    名前説明

    ansible_tower_provisioning

    true

    プロビジョニングコールバックを有効にします。

    ansible_tower_fqdn

    tower.example.com

    Ansible Tower の完全修飾ドメイン名 (FQDN)。https は Ansible Tower が追加するので、追加する必要はありません。

    ansible_job_template_id

    template_ID

    テンプレートの URL で確認できるプロビジョニングテンプレートの ID (/templates/job_template/5)。

    ansible_host_config_key

    config_KEY

    Ansible Tower のジョブテンプレートが作成したホスト設定キー。

  6. 送信 をクリックします。
  7. ホストグループを使用してホストを作成します。
  8. 新規ホストで、以下のコマンドを入力して、ansible-callback サービスを開始します。

    # systemctl start ansible-callback
  9. 新規ホストで、以下のコマンドを入力して、ansible-callback サービスのステータスを出力します。

    # systemctl status ansible-callback

    プロビジョニングコールバックが正しく設定されていると、以下の出力が返ります。

    SAT_host systemd[1]: Started Provisioning callback to Ansible Tower...

手動でのプロビジョニングコールバック

プロビジョニングコールバック URL およびホストからのホスト設定キーを使用して Ansible Tower を呼び出します。以下に例を示します。

# curl -k -s --data curl --insecure --data host_config_key=my_config_key \
 https://tower.example.com/api/v2/job_templates/8/callback/

プロビジョニングコールバック URL の入力時には、https を使用するようにしてください。

これにより、ホストに対して、テンプレートで指定した Playbook の実行がトリガーされます。