19.6. シェルフック
Webhook では、1 つの Satellite イベントを 1 つの API 呼び出しにのみマッピングできます。単一のシェルスクリプトに複数のコマンドを含めることができる高度な統合の場合、REST HTTP API を使用して実行可能ファイルを公開する Capsule shellhooks プラグインをインストールできます。
その後、Capsule API に接続して事前定義されたシェルフックを実行するように Webhook を設定できます。シェルフックは、実行可能であればどの言語でも記述できる実行可能なスクリプトです。たとえば、シェルフックにはコマンドや編集ファイルを含めることができます。
実行可能スクリプトは、名前に英数字とアンダースコアのみを使用して /var/lib/foreman-proxy/shellhooks
に配置する必要があります。
Webhook ペイロードを通じてシェルフックスクリプトに入力を渡すことができます。この入力はシェルフックスクリプトの標準入力にリダイレクトされます。X-Shellhook-Arg-1
~ X-Shellhook-Arg-99
形式の HTTP ヘッダーを使用して、シェルフックスクリプトに引数を渡すことができます。シェルフックスクリプトに引数を渡す方法は、次を参照してください。
HTTP メソッドは POST である必要があります。URL の例は、https://capsule.example.com:9090/shellhook/My_Script
のようになります。
shellhooks
ディレクトリーとは異なり、URL を有効にするには、URL に単数形の /shellhook/
が含まれている必要があります。
呼び出しを承認できるようにするには、シェルフックに接続されている Webhook ごとに Capsule Authorization を有効にする必要があります。
標準出力と標準エラー出力は、それぞれデバッグレベルまたは警告レベルのメッセージとして Capsule ログにリダイレクトされます。
シェルフックの HTTPS 呼び出しは値を返しません。
シェルフックスクリプトの作成例については、「引数を出力するためのシェルフックの作成」 を参照してください。