18.5. Shellhooks


使用 Webhook,您只能将一个 Satellite 事件映射到一个 API 调用。对于高级集成,其中单个 shell 脚本可以包含多个命令,您可以安装使用 REST HTTP API 公开可执行文件的 Capsule shellhooks 插件。

然后,您可以将 webhook 配置为连接到 Capsule API,以运行预定义的 shellhook。shellhook 是一个可执行脚本,可以使用提供它的任何语言编写。例如,shellhook 可以包含命令或编辑文件。

您必须将可执行脚本放在 /var/lib/foreman-proxy/shellhooks 中,其名称中只有一个字母数字字符和下划线。

您可以通过 Webhook 有效负载将输入传递给 shellhook 脚本。此输入重定向到 shellhook 脚本的标准输入。您可以使用 HTTP 标头来将参数传递给 shellhook 脚本,格式为 X-Shellhook-Arg-1X-Shellhook-Arg-99。有关将参数传递给 shellhook 脚本的更多信息,请参阅:

HTTP 方法必须是 POST。一个 URL 示例为: https://capsule.example.com:9090/shellhook/My_Script

注意

shellhooks 目录不同,URL 必须包含 /shellhook/ 才能有效。

您必须为每个连接到 shellhook 的 webhook 启用 Capsule 授权,以便它能够授权调用。

标准输出和标准错误输出分别重定向到 Capsule 日志,作为具有 debug 或 warning 级别的消息。

shellhook HTTPS 调用不会返回值。

有关创建 shellhook 脚本的示例,请参阅 第 18.9 节 “创建 shellhook 以打印参数”

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.