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


Red Hat Satellite は、ホストで任意のコマンドを実行する機能をサポートします。これは リモート実行 と呼ばれます。リモート実行は、Satellite Server でデフォルトで有効になっていますが、必要な全 Capsule Server で手動で有効にする必要があります。通信は Capsule Server 経由で行われるので、Satellite Server にはターゲットホストへの直接のアクセスが不要で、スケーリングしてホストの数を制御できます。リモート実行は、SSH サービスを使用します。これは、ターゲットホストで有効化され、実行されている必要があります。Capsule がターゲットホストのポート 22 にアクセスできることを確認します。
コマンドは、プロビジョニングテンプレートやパーティションテーブルと同様の方法でカスタマイズできます。デフォルトでいくつかのジョブテンプレートが含まれており、コマンドの実行に使用できます。「ジョブテンプレートのセットアップ」を参照してください。
注記
Capsule Server のベースシステムは Satellite Server の内部 Capsule のクライアントであるため、このセクションは Capsule Server を含む Satellite Server に接続されるホストのすべてのタイプに適用されます。
複数のホストでコマンドを一度に実行でき、デプロイメントに合わせてコマンドで変数を使用できます。変数値は、ホストファクト、スマートクラスパラメーター、スマート変数、またはホストパラメーターで埋めることができます。さらに、コマンドの実行時にテンプレートのカスタム値を指定できます。「ジョブの実行」を参照してください。
以下のリストは、リモート実行を使用する方法のいくつかの例を示しています。
  • ソフトウェアパッケージのインストール、更新、または削除
  • 設定管理エージェントのブートストラップ
  • Puppet、Salt または Chef 実行のトリガー
デフォルトでは、各 Capsule はリモート実行機能が無効にされた状態でインストールされます。Capsule Server でリモート実行を使用するには、これを有効にする必要があります。有効にするには、以下のコマンドを実行します。
# satellite-installer --scenario capsule --enable-foreman-proxy-plugin-remote-execution-ssh
リモート実行が Capsule Server で実行されていることを確認するには、Web UI で Infrastructure Capsules に移動します。これで、SSH が実行されている Features 列に Capsule Server が一覧表示されます。
デフォルトでは、Satellite Server は Katello Agent ではなくリモート実行を使用するように設定されています。必要に応じて、まずカスタムジョブテンプレートを作成し、リモート実行機能+移動 して、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 に設定されます。
注記
クライアントシステムの /var/ ボリュームまたはファイルシステムに noexec が設定されている場合は、remote_working_dir を変更します。そうしないと、スクリプトを実行できないためリモート実行ジョブが失敗します。
代替ディレクトリーを使用する必要がある場合は、新しいディレクトリー(例: new_place )を作成し、デフォルトのディレクトリーから SELinux コンテキストをコピーします。以下に例を示します。
# chcon --reference=/var new_place
SELinux ラベルの 『使用方法は、SELinux ユーザーおよび管理者のガイドの SELinux ラベルの維持』 セクションを参照し てください。

リモート実行のための SSH キーの配布

リモート実行を有効にするには、公開 SSH 鍵を Capsule から管理するホストに配布します。ホストで SSH サービスが有効化され、実行していることを確認します。ポート 22 にアクセスできるように、ネットワークまたはホストベースのファイアウォールを設定し、ポート 22 へのアクセスを有効化します。
Capsule からターゲットホストに公開鍵を配信する方法は 3 つあります。
  • キーを手動で配布するには、Capsule で以下のコマンドを実行します。
    # ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub root@target.example.com
    ここで、target.example.com はターゲットホストのホスト名になります。管理するターゲットホストごとに繰り返します。
    ターゲットホストにキーがコピーされたことを確認するには、Capsule で以下のコマンドを実行します。
    # ssh -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy root@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' %>
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る