17.10. 引数を出力するためのシェルフックの作成

リモート実行ジョブの実行時に、Hello World! を出力する単純なシェルフックスクリプトを作成します。

前提条件

手順

  1. /var/lib/foreman-proxy/shellhooks/print_args スクリプトを変更して、引数を標準エラーに出力し、Capsule ログで確認できるようにします。

    #!/bin/sh
    #
    # Prints all arguments to stderr
    #
    echo "$@" >&2
  2. Satellite Web UI で、Administer > Webhooks に移動します。
  3. Create new をクリックします。
  4. Subscribe to リストから、Actions Remote Execution Run Host Job Succeeded を選択します。
  5. Webhook の Name を入力します。
  6. Target URL フィールドに、Capsule Server の URL に続けて :9090/shellhook/print_args と入力します。

    https://capsule.example.com:9090/shellhook/print_args

    Shellhooks ディレクトリーとは異なり、URL 内の Shellhook は単数形であることに注意してください。

  7. Template リストから Empty Payload を選択します。
  8. Credentials タブで、Capsule Authorization をチェックします。
  9. Additional タブの Optional HTTP headers フィールドに次のテキストを入力します。

    {
        "X-Shellhook-Arg-1": "Hello",
        "X-Shellhook-Arg-2": "World!"
    }
  10. Submit をクリックします。これで、Hello World! を出力するシェルフックが正常に作成され、リモート実行ジョブが成功するたびに、Capsule ログに記録されます。

検証

  1. 任意のホストでリモート実行ジョブを実行します。time をコマンドとして使用できます。詳細は、ホストの管理リモートジョブの実行 を参照してください。
  2. シェルフックスクリプトがトリガーされ、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!