18.10. 引数を出力するシェルフックの作成
リモート実行ジョブの実行時に Hello World!
を出力する単純なシェルフックスクリプトを作成します。
前提条件
webhooks および shellhooks プラグインがインストールされている。詳細は以下を参照してください。
手順
/var/lib/foreman-proxy/shellhooks/print_args
スクリプトを変更して、引数を標準エラーに出力し、Capsule ログで確認できるようにします。#!/bin/sh # # Prints all arguments to stderr # echo "$@" >&2
- Satellite Web UI で、Administer > Webhook > Webhooks に移動します。
- Create new をクリックします。
- Subscribe to リストから、Actions Remote Execution Run Host Job Succeeded を選択します。
- Webhook の Name を入力します。
Target URL フィールドに、Capsule Server の URL に続けて
:9090/shellhook/print_args
と入力します。https://capsule.example.com:9090/shellhook/print_args
Shellhooks
ディレクトリーとは異なり、URL 内のShellhook
は単数形であることに注意してください。- Template リストから Empty Payload を選択します。
- Credentials タブで、Capsule Authorization をチェックします。
Additional タブの Optional HTTP headers フィールドに次のテキストを入力します。
{ "X-Shellhook-Arg-1": "Hello", "X-Shellhook-Arg-2": "World!" }
- Submit をクリックします。これで、Hello World! を出力するシェルフックが正常に作成され、リモート実行ジョブが成功するたびに、Capsule ログに記録されます。
検証
-
任意のホストでリモート実行ジョブを実行します。
time
をコマンドとして使用できます。詳細は、ホストの管理 の リモートジョブの実行 を 参照してください。 シェルフックスクリプトがトリガーされ、Hello World! が Capsule Server ログへ出力されたことを確認します。
# tail /var/log/foreman-proxy/proxy.log
ログの最後に次の行が表示されているはずです。
[I] Started POST /shellhook/print_args [I] Finished POST /shellhook/print_args with 200 (0.33 ms) [I] [3520] Started task /var/lib/foreman-proxy/shellhooks/print_args\ Hello\ World\! [W] [3520] Hello World!