18.10. 创建 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 > Webhooks。
- 点 Create new。
- 从 Subscribe to 列表中,选择 Actions Remote Execution Run Host Job Succeeded。
- 输入 webhook 的 Name。
在 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!