Show Table of Contents
第12章 Satellite ホストでのジョブの実行
Red Hat Satellite は任意のコマンドをホストで実行することをサポートします。これは リモート実行 と呼ばれています。リモート実行はデフォルトで Satellite Server で有効にされますが、必要なすべての Capsule Server では手動で有効にする必要があります。通信は Capsule Server 経由で行われます。これは、Satellite Server にはターゲットホストへの直接のアクセスが不要であり、多数のホストを管理するために拡張可能であることを意味します。コマンドはプロビジョニングテンプレートやパーティションテーブルと同様の方法でカスタマイズできます。いくつかのジョブテンプレートがデフォルトで含まれおり、これらを使用してコマンドを実行できます。「ジョブテンプレートのセットアップ」 を参照してください。
注記
Capsule Server のベースシステムは Satellite Server の内部 Capsule のクライアントであるため、このセクションは Capsule Server を含む Satellite Server に接続されるホストのすべてのタイプに適用されます。
コマンドは 1 度に複数のホストに対して実行でき、デプロイメントに適した変数をコマンドで使用できます。変数の値はホストのファクト、Smart Class パラメーター、Smart 変数またはホストパラメーターで設定できます。さらに、コマンドの実行時にテンプレートのカスタム値を指定することができます。「ジョブの実行」 を参照してください。
以下の一覧は、リモート実行を使用する方法のいくつかの例を示しています。
- ソフトウェアパッケージのインストール、更新、または削除
- 設定管理エージェントのブートストラップ
- Puppet、Salt または Chef 実行のトリガー
デフォルトでは、それぞれの Capsule はリモート実行機能が無効にされた状態でインストールされます。Capsule Server でリモート実行を使用するには、これを有効にする必要があります。有効にするには、以下のコマンドを実行します。
# satellite-installer --scenario capsule --enable-foreman-proxy-plugin-remote-execution-sshリモート実行が Capsule Server で実行されていることを確認するには、Web UI で → に移動します。Capsule Server は、SSH が実行する 機能 列に一覧表示されるはずです。
デフォルトで、Satellite Server は Katello エージェントではなくリモート実行を使用するように設定されています。必要な場合、これらの設定は、まずカスタムジョブテンプレートを作成し、次に Web UI の → に移動してこれらの新規テンプレートを選択して変更できます。変更するそれぞれのアクションについて、ラベルを選択してから使用するジョブテンプレートを選択します。
12.1. リモートコマンドのセキュアな接続の確立
リモート実行に使用される SSH キーは Capsule のインストール時に自動的に作成され、設定は
/etc/foreman-proxy/settings.d/remote_execution_ssh.yml ファイルにあります。それらには以下のオプションが含まれます。
- ssh_identity_file
- SSH キーをロードするファイルです。デフォルトでは
/usr/share/foreman-proxy/.ssh/id_rsa_foreman_proxyに設定されます。 - local_working_dir
- リモート実行に必要なスクリプトを実行するために Satellite または Capsule で使用されるディレクトリーです。デフォルトでは
/var/tmpに設定されます。 - remote_working_dir
- リモート実行ジョブを実行するために使用されるクライアントシステムのディレクトリーです。デフォルトでは、
/var/tmpに設定されます。
注記
クライアントシステムで
noexec が /var/ ボリュームまたはファイルシステムに設定されている場合、remote_working_dir を変更します。そうしないとスクリプトを実行できず、リモート実行ジョブが失敗します。
代替ディレクトリーを使用することが必要な場合、new_place などの新規ディレクトリーを作成し、デフォルトの ディレクトリーから SELinux コンテキストをコピーします。以下は例になります。
# chcon --reference=/var new_placeSELinux ラベルの使用についての詳細は、『SELinux User's and Administrator's Guide』 の Maintaining SELinux Labels セクションを参照してください。
リモート実行のための SSH キーの配布
リモート実行を有効にするには、公開 SSH キーを Capsule から管理するホストに送信します。Capsule からターゲットホストに公開鍵を送信する方法として 3 つの方法があります。
- キーを手動で配布するには、Capsule で以下のコマンドを実行します。
# ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub root@target.example.com
ここで、target.example.com はターゲットホストのホスト名です。管理するターゲットホストのそれぞれについてこれを繰り返し実行します。 - Satellite API を使用して公開鍵を Capsule から直接ダウンロードするには、それぞれのターゲットホストに対して以下のコマンドを実行します。
# curl https://myproxy.example.com:9090/ssh/pubkey >> ~/.ssh/authorized_keys
ここで、myproxy.example.com は Capsule のホスト名を表します。 - 公開鍵を新規にプロビジョニングされたホストに組み込むには、以下の行を含めるように Kickstart default finish テンプレートなどを変更します。
<%= snippet 'remote_execution_ssh_keys' %>

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.