第10章 ホストでのジョブの実行

シェルスクリプトまたは Ansible タスクと Playbook を使用して、Capsules からリモートでホスト上でジョブを実行できます。これはリモート実行と呼ばれます。

作成したカスタムの Ansible ロール、またはダウンロードしたロールの場合、ロールを含むパッケージを Capsule のベースオペレーティングシステムにインストールする必要があります。Ansible ロールを使用する前に、ロールがインストールされている Capsule から Satellite にロールをインポートする必要があります。

通信は Capsule Server 経由で行われるので、Satellite Server にはターゲットホストへの直接のアクセスが不要で、スケーリングして多数のホストを管理できます。リモート実行は、SSH サービスを使用します。SSH サービスは、ターゲットホストで有効化され、実行されている必要があります。リモート実行 Capsule が、ターゲットホストのポート 22 にアクセスできることを確認してください。

Satellite は、Embedded Ruby (ERB) 構文ジョブテンプレートを使用します。詳細は、付録A テンプレート作成の参照 を参照してください。

シェルスクリプトおよび Ansible のジョブテンプレートが複数、デフォルトで含まれています。詳細は、「ジョブテンプレートのセットアップ」 を参照してください。

デフォルトでは、Satellite Server はリモート実行ではなく Katello エージェントを使用するように設定されています。この設定を変更するには、管理 > 設定 に移動し、コンテンツ をクリックして、Use remote execution by default の設定を変更します。

注記

Capsule Server のベースオペレーティングシステムは、Satellite Server の内部 Capsule のクライアントであるため、このセクションは Capsule Server を含む Satellite Server に接続されるホストのすべてのタイプに適用されます。

複数のホストでジョブを一度に実行でき、コマンドで変数を使用すると、実行するジョブをより詳細に制御できます。ホストファクト、スマートクラスパラメーター、スマート変数、およびホストパラメーターを使用して、変数値を入力できます。Ansible 変数の詳細は、「 Satellite での Ansible 変数の上書き 」を参照してください。さらに、コマンドの実行時にテンプレートのカスタム値を指定できます。詳細は、「ジョブの実行」 を参照してください。

10.1. Satellite がリモート実行用に Capsule を選択する方法

ホストでリモートジョブを実行すると、すべてのホストについて、Satellite は以下のアクションを実行して、使用するリモート実行 Capsule を検出します。Satellite は、リモート実行機能が有効になっている Capsules のみを検索します。

  1. Satellite は、リモート実行 のチェックボックスが選択されているホストのインターフェースを検出します。
  2. Satellite はこれらのインターフェースのサブネットを検出します。
  3. Satellite は、これらのサブネットに割り当てられたリモート実行 Capsule を検出します。
  4. この Capsule のセットから、Satellite は実行中のジョブの数が最も少ない Capsule を選択します。こうすることで、Satellite はリモート実行 Capsule 間でのジョブの負荷を確実に分散させます。
  5. この段階で Satellite がリモート実行 Capsule を検出できず、任意の Capsule へのフォールバック 設定が有効になっている場合、Satellite は別の Capsule のセットを追加して、そこからリモート実行 Capsule を選択します。Satellite は、ホストに割り当てられている以下のタイプの Capsule の中から最も負荷の少ない Capsule を選択します。

    • ホストのサブネットに割り当てられた DHCP Capsule、DNS Capsule、および TFTP Capsule
    • ホストのドメインに割り当てられた DNS Capsule
    • ホストのレルムに割り当てられた Realm Capsule
    • Puppet Master Capsule
    • Puppet CA Capsule
    • OpenSCAP Capsule
  6. この段階で Satellite がリモート実行 Capsule を検出せず、グローバル Capsule の有効化 設定が有効になっている場合、Satellite は、ホストの組織およびロケーションにあるすべての Capsule のセットから最も負荷の少ないリモート実行 Capsule を選択し、リモートジョブを実行します。

10.1.1. Satellite での任意の Capsule へのフォールバックリモート実行の設定

任意の Capsule へのフォールバック 設定を有効にして、ホストに割り当てられている Capsule の一覧からリモート実行 Capsule を検索するように Satellite を設定できます。これは、サブネットが設定されていないホストでリモートジョブを実行する必要がある場合、またはリモート実行機能が有効になっていない Capsule にホストのサブネットが割り当てられている場合に役立ちます。

任意の Capsule へのフォールバック 設定が有効になっている場合、Satellite は別の Capsule のセットを追加して、そこからリモート実行 Capsule を選択します。また、以下のように Satellite は、ホストに割り当てられたすべての Capsule のセットから最も負荷の少ない Capsule を選択します。

  • ホストのサブネットに割り当てられた DHCP Capsule、DNS Capsule、および TFTP Capsule
  • ホストのドメインに割り当てられた DNS Capsule
  • ホストのレルムに割り当てられた Realm Capsule
  • Puppet Master Capsule
  • Puppet CA Capsule
  • OpenSCAP Capsule

手順

  1. Satellite Web UI で、管理 > 設定に移動します。
  2. リモート実行 をクリックします。
  3. 任意の Capsule へのフォールバック を設定します。

CLI をご利用の場合

Satellite で hammer settings set コマンドを入力して、任意の Capsule へのフォールバック を設定します。たとえば、値を true に設定するには、以下のコマンドを入力します。

# hammer settings set --name=remote_execution_fallback_proxy --value=true

10.1.2. Satellite でのグローバル Capsule リモート実行の設定

デフォルトで Satellite は、Capsule がホストのサブネットに割り当てられているかどうかに関係なく、ホストの組織とロケーションでリモート実行 Capsule を検索します。ホストのサブネットに割り当てられている Capsule に検索を限定する場合は、グローバル Capsule の有効化 設定を無効化することができます。

グローバル Capsule の有効化 設定が有効になっている場合、Satellite は別の Capsule のセットを追加して、そこからリモート実行 Capsule を選択します。また、Satellite は、ホストの組織およびロケーションにあるすべての Capsule のセットから最も負荷の少ないリモート実行 Capsule を選択し、リモートジョブを実行します。

手順

  1. Satellite Web UI で、管理 > 設定に移動します。
  2. リモート実行 をクリックします。
  3. グローバル Capsule の有効化 を設定します。

CLI をご利用の場合

Satelliteで hammer settings set コマンドを入力して、Enable Global Capsule を設定します。たとえば、値を true に設定するには、以下のコマンドを入力します。

# hammer settings set --name=remote_execution_global_proxy --value=true