Webhookd

跳转到:导航搜索

webhookd 启动一个 Web 服务器,提供 REST API。

它支持以下功能

  • 通过 HTTP 请求触发 shell 脚本或可执行文件
  • 将 HTTP 请求参数传递给脚本的环境上下文
  • 实时流式传输执行输出
  • 在执行后发送通知(电子邮件或 HTTP 请求)
  • 使用 HTTP Signature 方法检查请求完整性
  • 使用 Basic Auth 和 TLS 验证请求


安装

# zypper addrepo https://download.opensuse.org/repositories/home:sm0x/openSUSE_Tumbleweed/home:sm0x.repo
# zypper refresh
# zypper install webhookd

配置

要配置 webhookd,请更改环境变量

# /etc/default/webhookd

将新脚本添加到系统用户 webhookd 主目录中的 scripts 文件夹中

# /usr/share/webhookd/scripts 

请记住,脚本必须由运行 webhookd 的用户可执行(默认:webhookd)

入门

可以使用 systemd 启动和启用该服务

# systemctl enable --now webhookd

当守护程序运行时,您可以使用浏览器通过基本的 GET 调用进行测试

# https://:8080/echo

这将触发该脚本

# /usr/share/webhookd/scripts/echo.sh

有关更多信息,请访问官方 github 页面。


故障排除

错误:exec: "/var/lib/webhookd/scripts/xxx.sh": 权限被拒绝

当用户(默认情况下为 webhookd)无权执行脚本时,会发生这种情况。要解决此问题,请为运行用户添加可执行位。例如

# chown webhook:webhook /var/lib/webhookd/scripts/xxx.sh
# chmod 774 /var/lib/webhookd/scripts/xxx.sh

外部链接