12.2. リモートコマンドの設定および実行
リモートホストで実行するコマンドはジョブテンプレートとして定義する必要があります。ジョブテンプレートを定義した後はこれを複数回使用することができます。
12.2.1. ジョブテンプレートのセットアップ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Satellite は、ジョブの実行に使用できるデフォルトのジョブテンプレートを多数提供します。それらを、 で検索します。デフォルトのテンプレートで、ニーズに合わせてテンプレートがある場合は、「ジョブの実行」 に進みます。
デフォルトのテンプレートは、独自のテンプレートを作成するためのベースとして使用することもできます。デフォルトのジョブテンプレートは編集用にロックされているため、変更できるようにするには、まずテンプレートのクローンを作成する必要があります。
手順12.1 ジョブテンプレートの作成方法:
に移動します。 - をクリックします。別の方法として、既存のテンプレートを変更できます。アクション コラムで、ドロップダウンメニューから クローン を選択します。
- ジョブテンプレートを設定します。
- テンプレート タブ で、ジョブテンプレートの一意名を入力します。デフォルト を選択して、テンプレートをすべての組織およびロケーションで利用できるようにします。テンプレート エディター を使用して手動でテンプレートを挿入したり、参照 をクリックしてテキストファイルからアップロードしたりでき 。テンプレートは Embedded Ruby (ERB)テンプレート構文を使用します。詳細は、「詳細テンプレートの作成」 を参照してください。電源アクションを実行するジョブを実行するには、高度なテンプレートが必要です。Power Action - SSH Default テンプレートをカスタムテンプレートに含める方法は、例12.4「テンプレートにパワー操作を組み込む」 を参照してください。
- ジョブタブでは、ジョブ カテゴリーを定義できます(独自の定義、または 表12.1「デフォルトのジョブテンプレートカテゴリー」に記載のデフォルトカテゴリーから選択したり、実効ユーザーから選択したりできます。これらの設定は、ジョブの呼び出し時にも設定できます( 手順12.2「リモートジョブの実行方法:」を参照)。テンプレートコマンドの入力パラメーターを定義することも可能です。その後、これらのパラメーターは、ジョブの実行時に要求されます。
- 残りのタブでは、テンプレートのタイプ、組織およびロケーションの設定、およびテンプレート履歴の表示を実行できます。
- をクリックします。ページが更新されると、新しいテンプレートがジョブテンプレートのリストに表示されるはずです。
重要
ホストの編集ページの パラメーター タブで表示されるパラメーターのみが、ジョブテンプレートの入力パラメーターとして使用できる点にご留意ください。
|
ジョブテンプレートのカテゴリー
|
説明
|
|---|---|
| Packages | パッケージ関連のアクションを実行するためのテンプレートです。デフォルトで、インストール、更新、および削除アクションが含まれています。 |
| Puppet | ターゲットホストで Puppet ホストを実行するためのテンプレートです。 |
| Power | パワー関連のアクションを実行するためのテンプレートです。デフォルトで、再起動およびシャットダウンアクションが含まれます。 |
| Commands | リモートホストでカスタムコマンドを実行するためのテンプレートです。 |
| Services | サービス関連のアクションを実行するためのテンプレートです。デフォルトで、開始、停止、再起動、およびステータスアクションが含まれます。 |
| Katello | コンテンツ関連のアクションを実行するためのテンプレートです。これらのテンプレートは主として Satellite Web UI の各種の場所 (たとえば、コンテンツホストの一括操作のための UI など) で使用されますが、エラータのインストールなどの各種操作を実行するために個別に使用できます。 |
例12.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")%> の文字列は、ジョブの呼び出し時にユーザー定義のディレクトリーに置き換えられます。 - Job タブで、以下のアクションを実行します。
- ジョブカテゴリー を
Commandsに設定します。 - をクリックして、ジョブのカスタマイズを可能にします。名前 フィールドに
ディレクトリーを挿入します。入力する名前は、テンプレートエディターで指定された値と一致する必要があります。 - 必須 をクリックし、ユーザーがパラメーターを指定しなければコマンドが実行しないようにします。
入力 タイプ ドロップダウンリストから ユーザー入力を選択します。また、ジョブの呼び出し中に表示される Description (例: restorecon の Target directory )も提供します。
- をクリックします。
このテンプレートに基づいてジョブを実行する方法は、例12.2「複数のホストでの restorecon テンプレートの実行」 を参照してください。
12.2.2. ジョブの実行 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、1 つ以上のホストに対してジョブテンプレートに基づくジョブを実行する方法を説明します。
手順12.2 リモートジョブの実行方法:
に移動し、ジョブのターゲットホストを選択します。検索フィールドを使用してホストリストを絞り込むことができます。 - 画面右上の Select Action メニューから Run Job を選択します。これにより、Job invocation ページに移動します。あるいは、ホスト 1 つだけを対象にしている場合は、その名前 クリックします。 ボタンを使用して ジョブテンプレートページからもジョブ を呼び出すことができます。
- ジョブ呼び出し ページで、主なジョブ設定を定義します。
- 使用する Job category および Job template を選択します。これらの設定は必須です。
- オプションで、ブックマーク リストに保存された検索文字列を選択し、ターゲットホストを指定します。
- 必要に応じて、検索クエリー を挿入して、ターゲットホストをさらに制限します。解決 行には、クエリーの影響を受けるホストの数が表示されます。更新ボタンを押して、クエリー変更後の数を再計算します。プレビューアイコンには、ターゲットホストが一覧表示されます。
- 残りの設定は、選択したジョブテンプレートによって異なります。カスタムパラメーターをテンプレートに追加する方法は、手順12.1「ジョブテンプレートの作成方法:」 を参照してください。
- Display advanced fields をクリックして、ジョブの詳細設定を表示します。一部の詳細設定はジョブテンプレートによって異なります。以下は一般的な設定です。
- 実効ユーザー は、ジョブを実行するためにユーザーを定義します。デフォルトは SSH ユーザーです。
- 同時実行レベル は一度に実行するジョブの最大数を定義します。これにより、多数のホストでジョブを実行する場合に、システムのリソースに負荷が過剰にかかるのを防ぐことができます。
- タイムスパン は、ジョブが終了していない場合は、ジョブの強制終了までの間隔(秒単位)を定義します。以前のタスクが終了するまで時間がかかりすぎているなど、定義した間隔で起動できなかったタスクはキャンセルされます。
- クエリーのタイプは、検索クエリー が評価されるタイミングを定義します。これは、スケジュールされているタスクに対してクエリーが常に最新の状態に保つのに役立ちます。
同時実行レベル と タイムスパン 設定を使用すると、インフラストラクチャーハードウェアとニーズに合わせてジョブの実行を調整することができます。 - ジョブをすぐに実行する場合は、スケジュール が
今すぐ実行に設定されていることを確認します。さらに、1 回限りのジョブを未来の日付で定義したり、定期的なジョブを設定することもできます。定期的なジョブについては、開始日と終了日、実行回数と頻度を定義できます。また cron 構文を使用して繰り返しを定義することもできます。cron の詳細は、Red Hat Enterprise Linux 7 『System Administrator's Guide』 の Automating System Tasks セクションを参照してください。 - をクリックします。これにより Job Overview ページが表示され、ジョブの完了時にはジョブのステータスも表示されます。
例12.2 複数のホストでの restorecon テンプレートの実行
以下の例では、例12.1「restorecon テンプレートの作成」 で作成したテンプレートに基づいて、複数のホストでジョブを実行する方法を示します。このジョブは、
/home/ ディレクトリー下のすべてのファイルで SELinux コンテキストを復元します。
に移動し、ターゲットホストを選択します。Select Action ドロップダウンリストから Run Job を選択します。 - ジョブ呼び出し ページで、
Commandsジョブカテゴリーを選択し、Run Command - restoreconジョブテンプレートを選択します。 - ディレクトリー フィールドに
/homeと入力します。 - スケジュール を
Execute nowに設定します。 - をクリックします。ジョブ呼び出し ページに移動します。ここでジョブ 実行のステータスを監視できます。
12.2.3. ジョブの監視 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
実行中のジョブの進捗を監視できます。これは、トラブルシューティングが必要になる場合に役立ちます。
手順12.3 ジョブの監視方法:
- ジョブのページに移動します。このページには、
Execute nowが設定されているジョブをトリガーすると自動的に表示されます。スケジュールされた + に移動し、検査するジョブ実行を選択します。 - ジョブページで、ホスト タブをクリックします。これにより、ジョブが実行しているホストのリストが表示されます。
- ホスト コラム で、検査するホストの名前をクリックします。これにより、ジョブ の実行をリアルタイムで監視できる コマンドの詳細 ページが表示されます。
- いつでも をクリックして、ジョブの詳細 ページに戻ることができます。
12.2.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") %>
上記のテンプレートを使用して、レンダリングされたテンプレートからパラメーター定義をインポートする必要があります。これを行うには、Jobs タブに移動し、 をクリックし、Target template ドロップダウンリストからレンダリングされたテンプレートを選択します。すべてのパラメーターをインポートするか、コンマ区切りのリストを指定することができます。
例12.3 restorecon テンプレートのレンダリング
この例は、 で作成される Run command - restorecon テンプレートから派生するテンプレートを作成する方法を示しています。このテンプレートはジョブ実行時にユーザー入力を必要としません。ターゲットホストの
/home/ ディレクトリー下のすべてのファイルに SELinux コンテキストが復元されます。
「ジョブテンプレートのセットアップ」 の説明に従って新しいテンプレートを作成し、Template editor 画面で以下の文字列を指定します。
<%= render_template("Run Command - restorecon", :directory => "/home") %>
<%= render_template("Run Command - restorecon", :directory => "/home") %>
例12.4 テンプレートにパワー操作を組み込む
以下の例では、再起動などのパワー操作を実行するためのジョブテンプレートをセットアップする方法を示します。この手順は、Satellite が再起動時に切断の例外をエラーとして解釈するのを防ぐため、ジョブのリモート実行が正常に機能します。
「ジョブテンプレートのセットアップ」 の説明に従って新しいテンプレートを作成し、Template editor 画面で以下の文字列を指定します。
<%= render_template("Power Action - SSH Default", :action => "restart") %>
<%= render_template("Power Action - SSH Default", :action => "restart") %>