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

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

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

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

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

前提条件

  • 大規模なデプロイメントでは、管理ユーザーの使用を検討すること。たとえば、数万台のホストを管理するなど、Satellite のデプロイメントが大規模な場合、管理者以外のユーザーを使用すると、認証の確認中にタイムペナルティーが発生するため、パフォーマンスに悪影響を及ぼす可能性があります。
  • 管理者以外のユーザーの場合、Satellite Server ユーザーに Ansible Tower Inventory Reader ロールを割り当てる。ユーザー、ロール、パーミッションフィルターの管理に関する詳細は、『Red Hat Satellite の管理』の「ロールの作成および管理」を参照してください。
  • Satellite Server と Ansible Tower を同じネットワークまたはサブネット上にホストすること。

手順

Satellite Server を動的インベントリー項目として Ansible Tower に追加するには、以下の手順を実行します。

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

    表12.1 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 をインベントリーソースとして追加し、以下のインベントリーソースオプションを指定します。詳細は、『Ansible Tower ユーザーガイド』の「ソースの追加」を参照してください。

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

    ソースRed Hat Satellite 6

    認証情報

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

    上書き

    選択

    変数の上書き

    選択

    起動時の更新

    選択

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

    90

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

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

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

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

プロビジョニングコールバックの詳細は『Ansible 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 に追加する必要がある。詳細は、「Red Hat 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. 新規パラメーターごとに、以下の情報を入力します。

    表12.3 ホストパラメーター

    名前説明

    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 の実行がトリガーされます。