18.5. シェルフック
Webhook では、1 つの Satellite イベントを 1 つの API 呼び出しにのみマッピングできます。1 つのシェルスクリプトに複数のコマンドを含めることができる高度なインテグレーションの場合は、REST HTTP API を使用して実行可能ファイルを公開する Capsule シェルフックプラグインをインストールできます。
その後、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 呼び出しは値を返しません。
シェルフックスクリプトの作成例については、「引数を出力するシェルフックの作成」 を参照してください。