第4章 ホストでのリモートジョブの実行
Red Hat Satellite は、Shell スクリプトを使用してホストで任意のコマンドを使用してジョブを実行する機能および、Ansible タスクと Playbook を実行する機能をサポートします。これは、リモート実行と呼ばれます。
リモート実行は、Satellite Server ではデフォルトで有効になっていますが、Capsule Server では手動で有効化する必要があります。カスタムの Ansible ロールを作成した場合やロールをダウンロードした場合には、ロールを含むパッケージを、タスクの実行先または Playbook の実行先である Capsule のベースシステムにインストールする必要があります。ロールをインストール済みの Capsule から Satellite に、これらのロールをインポートしてからでないと、Satellite では使用できません。
通信は Capsule Server 経由で行われます。これは、Satellite Server にはターゲットホストへの直接のアクセスが不要であり、多数のホストを管理するために拡張可能であることを意味します。リモート実行は SSH サービスを使用するため、ターゲットホストで有効化されており、実行している必要があります。Capsule に、ターゲットホストのポート 22 にアクセスできることを確認してください。
Satellite は、プロビジョニングテンプレートによく似ている ERB 構文のジョブテンプレートを使用します。Shell スクリプトおよび Ansible のジョブテンプレートが複数、デフォルトで含まれています。「ジョブテンプレートのセットアップ」を参照してください。
Capsule Server のベースシステムは Satellite Server の内部 Capsule のクライアントであるため、このセクションは Capsule Server を含む Satellite Server に接続されるホストのすべてのタイプに適用されます。
ジョブは、一度に複数のホストに対して実行でき、デプロイメントに適した変数をコマンドで使用できます。変数の値は、ホストのファクト、Smart Class パラメーター、Smart 変数、またはホストパラメーターで設定できます。さらに、コマンドの実行時にテンプレートのカスタム値を指定できます。「ジョブの実行」を参照してください。
デフォルトでは、それぞれの Capsule はリモート実行機能が無効にされた状態でインストールされます。リモート実行を有効にするには、以下のコマンドを入力します。
satellite-installer --scenario capsule \ --enable-foreman-proxy-plugin-remote-execution-ssh
# satellite-installer --scenario capsule \
--enable-foreman-proxy-plugin-remote-execution-ssh
Capsule Server でリモート実行が有効になっていることを確認するには、Web UI で インフラストラクチャー > Capsules に移動し、編集アイコンの右側にある アクション コラムで、機能の更新 を選択して、リモート実行機能が表示されていることを確認します。
デフォルトで、Satellite Server は Katello エージェントではなくリモート実行を使用するように設定されています。これらの設定は、まずカスタムジョブテンプレートを作成し、次に Web UI の 管理 > リモート実行機能 に移動してこれらの新規テンプレートを選択して変更できます。変更するそれぞれのアクションについて、ラベルを選択し、使用するジョブテンプレートを選択します。
4.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_place
# chcon --reference=/var new_place
SELinux ラベルの使用方法は、『SELinux ユーザーおよび管理者のガイド』の「SELinux ラベルの維持」を参照してください。
リモート実行のための SSH キーの配布
リモート実行接続の認証に SSH キーを使用するには、Capsule から管理するアタッチ済みのホストに、公開 SSH キーを配信します。ホストで SSH サービスが有効になっており、実行していることを確認します。ポート 22 にアクセスできるように、ネットワークまたはホストベースのファイアウォールを設定します。
Capsule からターゲットホストに公開鍵を配信する方法は 3 つあります。
キーを手動で配布するには、Capsule で以下のコマンドを入力します。
ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub root@target.example.com
# ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub root@target.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、target.example.com はターゲットホストのホスト名です。管理する各ターゲットホストに対して、これを繰り返し実行します。
ターゲットホストにキーがコピーされたことを確認するには、Capsule で以下のコマンドを入力します。
ssh -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy root@target.example.com
# ssh -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy root@target.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite API を使用して公開鍵を Capsule から直接ダウンロードするには、それぞれのターゲットホストに対して以下のコマンドを入力します。
curl https://capsule.example.com:9090/ssh/pubkey >> ~/.ssh/authorized_keys
# curl https://capsule.example.com:9090/ssh/pubkey >> ~/.ssh/authorized_keysCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、capsule.example.com はホストをアタッチする Capsule のホスト名です。
公開鍵を新規にプロビジョニングされたホストに組み込むには、以下の行を含めるように Kickstart default finish テンプレートなどを変更します。
<%= snippet 'remote_execution_ssh_keys' %>
<%= snippet 'remote_execution_ssh_keys' %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. リモート実行に Kerberos 認証の設定 リンクのコピーリンクがクリップボードにコピーされました!
Satellite 6.4 以降、Kerberos 認証を使用して、Satellite ホストでリモート実行に SSH 接続を確立できます。
前提条件
Red Hat Satellite でリモート実行に Kerberos 認証情報を使用する前に、ID 管理に Kerberos サーバーを設定し、以下の前提条件を完了していることを確認します。
- Kerberos サーバーの Satellite Server の登録
- Kerberos サーバーの Satellite ターゲットホストの登録
- リモート実行用に Kerberos ユーザーアカウントの設定および初期化
-
Satellite の
foreman-proxyユーザーに、チケットを付与する有効な Kerberos チケットがあることを確認
ホストでリモート実行に Kerberos 認証情報を使用するように Satellite を設定するには、以下の手順を完了します。
Red Hat Bugzilla 1541481 が解決するまで、
tfm-rubygem-net-ssh-krbパッケージをインストールする前に、一時的に SELinux をpermissiveに設定する必要があります。setenforce 0
# setenforce 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow tfm-rubygem-net-ssh-krbパッケージをインストールするには、以下のコマンドを入力します。yum install tfm-rubygem-net-ssh-krb
# yum install tfm-rubygem-net-ssh-krbCopy to Clipboard Copied! Toggle word wrap Toggle overflow リモート実行に Kerberos 認証をインストールおよび有効にするには、以下のコマンドを入力します。
satellite-installer --scenario satellite \ --foreman-proxy-plugin-remote-execution-ssh-ssh-kerberos-auth true
# satellite-installer --scenario satellite \ --foreman-proxy-plugin-remote-execution-ssh-ssh-kerberos-auth trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux を
enforcingに設定します。setenforce 1
# setenforce 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - リモート実行のデフォルトユーザーを編集するには、Satellite Web UI で 管理 > 設定 に移動して、リモート実行 タブをクリックします。remote_execution_ssh_user 行で 2 番目のコラムを編集し、Kerberos アカウントのユーザー名を追加します。
- remote_execution_effective_user に移動し、2 番目のコラムを編集して、Kerberos アカウントのユーザー名を追加します。
Kerberos 認証が使用できることを確認するには、ホストでリモートジョブを実行します。
4.3. リモートジョブの設定および実行 リンクのコピーリンクがクリップボードにコピーされました!
リモートホストで適用するコマンドはジョブテンプレートとして定義する必要があります。ジョブテンプレートを定義した後はこれを複数回使用することができます。
4.3.1. ジョブテンプレートのセットアップ リンクのコピーリンクがクリップボードにコピーされました!
Satellite は、ジョブ実行に使用可能なデフォルトのジョブテンプレートを提供します。ジョブテンプレートの一覧を表示するには、ホスト > ジョブテンプレート に移動します。変更せずにテンプレートを使用する場合には、「ジョブの実行」に進んでください。
デフォルトテンプレートは独自のテンプレートを作成するためのベースとして使用することもできます。デフォルトのジョブテンプレートは、編集できないようにロックされているので、テンプレートのクローンを作成して、このクローンを編集してください。
- テンプレートのクローンを作成するには、アクション コラムで、クローン を選択します。
- クローンに一意名を指定して、送信 をクリックして変更を保存します。
ジョブテンプレートは、Embedded Ruby (ERB) 構文を使用します。テンプレートの記述に関する詳細は、付録A テンプレート作成の参照を参照してください。
Ansible の考慮事項
Ansible ジョブテンプレートを作成するには、以下の手順を使用し、ERB 構文ではなく YAML 構文を使用します。テンプレートは --- で開始し、1 行目に - hosts: all を追加する必要があります。Ansible playbook YAML ファイルをジョブテンプレートの本文に埋め込みます。また、ERB 構文を追加して、YAML Ansible テンプレートをカスタマイズすることも可能です。Satellite に Ansible Playbook をインポートすることも可能です。詳細情報は、『コンテンツ管理ガイド』の「git とのテンプレートの同期」を参照してください。
パラメーター変数
ランタイム時に、ジョブテンプレートはホストに定義するパラメーター変数を受け入れることができます。ホストの編集ページの パラメーター タブでのみ表示できるパラメーターは、ジョブテンプレートの入力パラメーターとして使用できる点に注意してください。ランタイム時に Ansible ジョブテンプレートでパラメーター変数を受け入れない場合には、Satellite Web UI で 管理 > 設定 に移動して、Ansible タブをクリックします。トップレベルの Ansible 変数 の列で、Value パラメーターを No に変更します。
ジョブテンプレートのクローンの作成
- ホスト > ジョブテンプレート に移動します。
- 新規ジョブテンプレート をクリックします。
- テンプレート タブをクリックして、名前 フィールドに、ジョブテンプレートの一意名を入力します。
- デフォルト を選択して、テンプレートを全組織およびロケーションで利用できるようにします。
- テンプレートエディターで直接テンプレートを作成するか、インポート をクリックしてテキストファイルからテンプレートをアップロードします。
- オプション: 監査コメント フィールドで、変更に関する情報を追加します。
- ジョブ タブをクリックして、ジョブカテゴリー フィールドに、独自のカテゴリーを入力するか、表4.1「デフォルトのジョブテンプレートカテゴリー」に記載のデフォルトカテゴリーから選択します。
-
オプション: Description Format フィールドで、
Install package %{package_name}など、記述形式を入力します。また、テンプレートでは%{template_name}および%{job_category}も使用できます。 - プロバイダータイプ メニューから、Shell スクリプトに SSH を、Ansible タスクまたは Playbook にAnsible を選択します。
- オプション: Timeout to kill フィールドで、ジョブが完了しない場合に、ジョブを中断するタイムアウトの値を入力します。
- オプション: 入力を追加 をクリックし、入力パラメーターを定義します。ジョブの実行時にパラメーターを要求し、テンプレートに定義する必要はありません。各種サンプルについては、ヘルプ タブを参照してください。
- オプション: 外部入力セット をクリックして、このジョブの他のテンプレートを追加します。
-
オプション: 実効ユーザー エリアで、コマンドでデフォルトの
remote_execution_effective_user設定を使用できない場合に、ユーザーを設定します。 - オプション: このテンプレートをスニペットとして他のテンプレートを追加する場合には、タイプ タブをクリックして、スニペット を選択します。
- ロケーション タブをクリックして、テンプレートを使用するロケーションを追加します。
- 組織 タブをクリックして、テンプレートを使用する組織を追加します。
- 送信 をクリックして変更を保存します。
テンプレート構文に他のテンプレートを追加して、詳細なテンプレートを作成できます。詳細は「詳細テンプレートの作成」を参照してください。たとえば、パワー関連のアクションを実行するには詳細なテンプレートが必要になります。Power Action - SSH Default テンプレートをカスタムテンプレートに組み込む方法は例4.4「テンプレートへのパワー操作の追加」を参照してください。
| ジョブテンプレートのカテゴリー | 説明 |
|---|---|
|
Packages |
パッケージ関連のアクションを実行するためのテンプレートです。デフォルトで、インストール、更新、および削除のアクションが含まれています。 |
|
Puppet |
ターゲットホストで Puppet を実行するためのテンプレートです。 |
|
Power |
パワー関連のアクションを実行するためのテンプレートです。デフォルトで、再起動およびシャットダウンのアクションが含まれます。 |
|
Commands |
リモートホストでカスタムコマンドを実行するためのテンプレートです。 |
|
Services |
サービス関連のアクションを実行するためのテンプレートです。デフォルトで、開始、停止、再起動、およびステータスのアクションが含まれます。 |
|
Katello |
コンテンツ関連のアクションを実行するためのテンプレートです。これらのテンプレートは主として Satellite Web UI の各種の場所で使用されます (たとえば、コンテンツホストの一括操作のための UI など) が、エラータのインストールなどの各種操作を実行するために個別に使用できます。 |
例4.1 restorecon テンプレートの作成
この例は、Run Command - restorecon というテンプレートを作成する方法を示します。これは、ターゲットホストで選択したディレクトリー内の全ファイルに対して、デフォルトの SELinux コンテキストを復元します。
- ホスト > ジョブテンプレート に移動して、新規ジョブテンプレート をクリックします。
名前 フィールドに Run Command - restorecon と入力します。デフォルト を選択して、テンプレートをすべての組織で利用できるようにします。以下のテキストをテンプレートエディターに追加します。
restorecon -RvF <%= input("directory") %>restorecon -RvF <%= input("directory") %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <%= input("directory") %>の文字列は、ジョブの呼び出し時にユーザー定義のディレクトリーに置き換えられます。-
ジョブ タブで、ジョブカテゴリー を
Commandsに設定します。 -
入力を追加 をクリックして、ジョブのカスタマイズを可能にします。名前 フィールドに
directoryと入力します。入力する名前は、テンプレートエディターで指定した値と一致している必要があります。 - 必須 をクリックし、ユーザーがパラメーターを指定しなければコマンドが実行しないようにします。
-
入力タイプ ドロップダウンリストから ユーザー入力 を選択します。ジョブの呼び出し中に表示する説明を入力します (例:
Target directory for restorecon)。 - 送信 をクリックします。
このテンプレートに基づいてジョブを実行する方法は、例4.2「複数のホストで restorecon テンプレートの実行」を参照してください。
4.3.2. ジョブの実行 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、1 つ以上のホストに対してジョブテンプレートに基づくジョブを実行する方法を説明します。
リモートジョブの実行
- ホスト > すべてのホスト に移動し、ジョブのターゲットホストを選択します。検索フィールドを使用してホストの一覧を絞り込むことができます。
- アクションの選択 メニューから リモートジョブのスケジュール を選択します。
ジョブ呼び出し ページで、主なジョブ設定を定義します。
- 使用する ジョブカテゴリー およびジョブテンプレートを選択します。
- オプションとして、ブックマーク の一覧に保存された検索文字列を選択し、ターゲットホストを指定します。
- オプションとして、検索クエリー を入力し、ターゲットホストの範囲をさらに狭めることができます。解決 行には、クエリーの影響を受けるホストの数が表示されます。更新ボタンを押して、クエリーを変更した後の数を再計算します。プレビューアイコンにはターゲットホストが一覧表示されます。
- 残りの設定は、選択したジョブテンプレートによって異なります。カスタムパラメーターをテンプレートに追加する方法は「ジョブテンプレートのクローンの作成」を参照してください。
詳細フィールドを表示 をクリックすると、ジョブの詳細設定が表示されます。一部の詳細設定はジョブテンプレートによって異なります。以下は一般的な設定です。
- 実効ユーザー: ジョブを実行するためにユーザーを定義します。デフォルトは SSH ユーザーです。
- 同時実行レベル 1 度に実行するジョブの最大数を定義します。これにより、大規模ホストでジョブを実行する際に、システムのリソースに負荷が過剰にかかるのを防ぐことができます。
- タイムスパン は、ジョブが終了していない場合に、強制終了するまでの間隔 (秒単位) で定義します。以前のタスクが終了するまで時間がかかりすぎているなど、定義した間隔で起動できなかったタスクはキャンセルされます。
クエリーのタイプ: 検索クエリーが評価されるタイミングを定義します。これは、スケジュールされているタスクに対してクエリーが常に最新の状態に保つのに役立ちます。
同時実行レベル 設定および タイムスパン 設定により、お使いのインフラストラクチャーハードウェアおよびニーズに合わせてジョブ実行を調整します。
- ジョブをすぐに実行する場合は、スケジュール が 今すぐ実効 に設定されていることを確認します。さらに 1 回限りの将来のジョブを定義したり、再帰的に実行されるジョブを設定することもできます。再帰的に実行されるジョブについては、開始日と終了日、実行の回数と頻度を定義できます。また cron 構文を使用して繰り返しを定義することもできます。詳細は Red Hat Enterprise Linux 7 の『システム管理者のガイド』の「システムタスクの自動化」セクションを参照してください。
- 送信 をクリックします。これにより ジョブの概要 ページが表示され、ジョブの完了時にはジョブのステータスも表示されます。
例4.2 複数のホストで restorecon テンプレートの実行
以下の例では、例4.1「restorecon テンプレートの作成」 で作成されたテンプレートに基づいて、複数のホストでジョブを実行する方法を示します。このジョブは、/home/ ディレクトリーの下にあるすべてのファイルで SELinux コンテキストを復元します。
- ホスト > すべてのホスト に移動し、ターゲットホストを選択します。アクションの選択 ドロップダウンメニューで、リモートジョブのスケジュール を選択します。
-
ジョブ呼び出し ページで、
Commandsジョブカテゴリーを選択し、Run Command - restoreconジョブテンプレートを選択します。 -
directory フィールドに、
/homeと入力します。 -
スケジュール を
今すぐ実行に設定します。 - 送信 をクリックします。ジョブ呼び出し ページに移動します。ここでジョブ実行のステータスを監視できます。
4.3.3. ジョブの監視 リンクのコピーリンクがクリップボードにコピーされました!
実行中のジョブの進捗を監視できます。これは、トラブルシューティングが必要になる場合に役立ちます。
ジョブを監視するには、以下を実行します。
-
ジョブのページに移動します。このページは、
今すぐ実行が設定されているジョブをトリガーすると自動的に表示されます。スケジュールされたジョブを監視するには、モニター > ジョブ に移動して、検査するジョブ実行を選択します。 - ジョブページで、ホスト タブをクリックします。これにより、ジョブが実行しているホストの一覧が表示されます。
- ホスト 列で、検査するホストの名前をクリックします。これにより、ジョブの実行をリアルタイムでモニターできる コマンドの詳細 ページが表示されます。
- いつでも ジョブに戻る をクリックして、ジョブの詳細 ページに戻ることができます。
4.3.4. 詳細テンプレートの作成 リンクのコピーリンクがクリップボードにコピーされました!
ジョブテンプレートの作成時に、テンプレートエディターフィールドで既存のテンプレートを追加できます。こうすることで、テンプレートを組み合わせたり、一般的なテンプレートからより具体的なテンプレートを作成したりできます。
以下のテンプレートを使用してデフォルトのテンプレートを組み合わせ、Red Hat Enterprise Linux システムに httpd サービスをインストールして起動できます。
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => 'httpd' %> <%= render_template 'Service Action - SSH Default', :action => 'start', :service_name => 'httpd' %>
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => 'httpd' %>
<%= render_template 'Service Action - SSH Default', :action => 'start', :service_name => 'httpd' %>
上記のテンプレートはレンダリングされるテンプレートのパラメーター値を直接指定します。ユーザーがジョブ実行時にレンダリングされたテンプレートへの入力を定義できるようにする input() メソッドを使用することもできます。たとえば、以下の構文を使用できます。
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => input("package") %>
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => input("package") %>
上記のテンプレートを使用して、レンダリングされたテンプレートからパラメーター定義をインポートする必要があります。これを行うには、ジョブ タブに移動し、外部入力セットを追加 をクリックし、ターゲットテンプレート ドロップダウンリストで、レンダリングされたテンプレートを選択します。すべてのパラメーターをインポートするか、コンマ区切りの一覧を指定することができます。
例4.3 restorecon テンプレートのレンダリング
この例は、例4.1「restorecon テンプレートの作成」で作成される Run command - restorecon テンプレートから派生するテンプレートを作成する方法を示しています。このテンプレートでは、ジョブ実行時にユーザーが入力する必要はなく、ターゲットホストの /home/ ディレクトリー下のすべてのファイルで SELinux コンテキストを復元します。
「ジョブテンプレートのセットアップ」に従って新規テンプレートを作成し、テンプレートエディター画面で以下の文字列を指定します。
<%= render_template("Run Command - restorecon", :directory => "/home") %>
<%= render_template("Run Command - restorecon", :directory => "/home") %>
例4.4 テンプレートへのパワー操作の追加
以下の例では、再起動などのパワー操作を実行するためにジョブテンプレートをセットアップする方法を示します。この手順は、Satellite が再起動時に切断の例外をエラーとして解釈するのを防ぐため、ジョブのリモート実行が正常に機能します。
「ジョブテンプレートのセットアップ」に従って新規テンプレートを作成し、テンプレートエディター画面で以下の文字列を指定します。
<%= render_template("Power Action - SSH Default", :action => "restart") %>
<%= render_template("Power Action - SSH Default", :action => "restart") %>
4.4. グローバル設定 リンクのコピーリンクがクリップボードにコピーされました!
Satellite のリモート実行機能は、その動作を設定するために使用できる数多くのグローバル設定を提供しています。グローバル設定の一覧は表4.2「リモート実行用のグローバル設定」で紹介されています。これらの設定を確認し、更新するには、管理 > 設定 に移動して、リモート実行 タブをクリックします。
| パラメーター名 | 説明 |
|---|---|
|
remote_execution_effective_user |
これは、任意のジョブに対するデフォルトの実効ユーザーです。ジョブが実行する際に、プロセスの実効ユーザーがそれに応じて変更されます (sudo による変更など)。このオプションはジョブテンプレートおよびジョブ呼び出し別にオーバーライドできます。 |
|
remote_execution_effective_user_method |
ターゲットホストで実効ユーザーを設定するために使用するメソッドを指定します。現時点では su と sudo だけがサポートされています。 |
|
remote_execution_fallback_proxy |
ホストでリモート実行が設定された Capsule を検索します。これはホストにサブネットがないか、またはサブネットにリモート実行が有効になっている Capsule がない場合に役立ちます。 |
|
remote_execution_global_proxy |
ホストに割り当てられた Capsule 外にあるリモート実行 Capsule を検索します。ロケーションまたは組織が有効になっている場合、検索はホストの組織またはロケーションに限定されます。 |
|
remote_execution_ssh_user |
Capsule が SSH でターゲットに接続する際に使用されるデフォルトユーザーです。
この設定は、ホスト、ホストグループ、オペレーティングシステム、ドメイン、ロケーションまたは組織別に実行できます。さらに、 |
|
remote_execution_sync_templates |
データベースのシード処理時にジョブテンプレートをディスクと同期させるかどうかを定義します。 |
/etc/foreman/settings.yaml 設定ファイルでグローバルパラメーターを設定できますが、このファイルに追加する手動の変更は、次に satellite-installer を実行したときに上書きされます。したがって、Red Hat では、このパラメーターを Web UI で変更することを推奨します。または、コンソールから foreman-rake config コマンドを使用することができます。
4.4.1. リモート実行用の Capsule の選択 リンクのコピーリンクがクリップボードにコピーされました!
リモート実行では、ホストに指定されたジョブを Capsule Server が実行することが必要になります。デフォルトで、リモート実行プロバイダー 機能が有効になったホストの組織およびロケーション内の Capsule は、これらのジョブを実行できると見なされています。remote_execution_global_proxy 変数を false に設定すると、この動作を無効にできます。これは、ネットワークの分離のためにすべての Capsule を使用できない場合など、より複雑な環境で必要になる場合があります。この設定では、Capsule のプールが各サブネットに割り当てられ、そのサブネット間でジョブの負荷が分散されます。
また、remote_execution_fallback_proxy 変数を true に設定してフォールバックモードを有効にすることもできます。この設定では、Capsule でもリモート実行が設定されている場合に、リモート実行に Puppet マスターなどのホストに関連付けられた Capsule が使用されます。
4.5. リモート実行用のパーミッションの委任 リンクのコピーリンクがクリップボードにコピーされました!
ターゲットにするホストを含め、インフラストラクチャー内で実行するジョブと、それを実行するホストを制御できます。リモート実行機能は 2 つの組み込みロールを提供します。
- Remote Execution Manager (リモート実行マネージャー): このロールは、すべてのリモート実行機能および機能性へのアクセスを許可します。
- Remote Execution User (リモート実行ユーザー): このロールは、ジョブの実行のみを許可します。ジョブテンプレートを変更するパーミッションは提供されません。
Remote Execution User (リモート実行ユーザー) ロールのクローンを作成し、そのフィルターをカスタマイズして詳細度を高めることができます。view_job_templates パーミッションでフィルターを調整する場合、ユーザーは一致するジョブテンプレートに基づいてジョブを確認し、トリガーすることのみが可能です。view_hosts パーミッションおよび view_smart_proxies パーミッションを使用すると、ロールに表示されるホストまたは Capsule を制限できます。
execute_template_invocation パーミッションはジョブの実行が開始する直前に確認される特殊なパーミッションです。このパーミッションは、特定のホストで実行できるジョブテンプレートを定義します。これにより、パーミッションの指定時に詳細度をさらに高めることができます。ロールおよびパーミッションの使用については、『Red Hat Satellite の管理』の「ロールの作成および管理」を参照してください。
以下の例は、execute_template_invocation パーミッションのフィルターを示しています。
name = Reboot and host.name = staging.example.com name = Reboot and host.name ~ *.staging.example.com name = "Restart service" and host_group.name = webservers
name = Reboot and host.name = staging.example.com
name = Reboot and host.name ~ *.staging.example.com
name = "Restart service" and host_group.name = webservers
上記の例の最初の行により、選択したホストで Reboot テンプレートを適用できます。2 番目の行は、.staging.example.com で終わる名前を持つホストのプールを定義します。3 番目の行はテンプレートをホストグループにバインドします。
ユーザーに割り当てるパーミッションは時間の経過と共に変更できます。ユーザーに将来実行するようにスケジュールされたジョブがあり、パーミッションが変更した場合、パーミッションがジョブ実行の直前にチェックされるため、これによる実行が失敗する可能性があります。