18.9. 创建 shellhook 以打印参数
创建一个简单的 shellhook 脚本,该脚本会在您运行远程执行作业时打印 Hello World!
。
先决条件
已安装 webhook 和 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 的名称。
在 Target URL 字段中,输入您的 Capsule 服务器的 URL,后跟
:9090/shellhook/print_args
:https://capsule.example.com:9090/shellhook/print_args
请注意,URL 中的
shellhook
是单数,与shellhooks
目录不同。- 从 Template 列表中,选择 Empty Payload。
- 在 Credentials 选项卡上,检查 Capsule Authorization。
在 Additional 选项卡中,在 Optional HTTP 标头 字段中输入以下文本:
{ "X-Shellhook-Arg-1": "Hello", "X-Shellhook-Arg-2": "World!" }
- 点 Submit。现在,您已成功创建了一个 shellhook,它会在每次远程执行作业成功时都会将 "Hello World!" 打印到 Capsule 日志。
验证
-
在任意主机上运行远程执行作业。您可以使用
时间
作为命令。如需更多信息 ,请参阅管理主机中的执行远程作业。 验证 shellhook 脚本是否已触发,并将 "Hello World!" 打印到胶囊服务器日志:
# 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!