Tob*_*byB 1 rest powershell json rundeck
我在 Rundeck 中定义了一个 webhook 来运行特定的作业。该作业定义了 3 个选项:${option.VMName}、${option.CPU} 和 ${option.Memory}。作业本身定义为本地 powershell 脚本,并执行为:powershell ${scriptfile} ${option.VMName} ${option.CPU} ${option.Memory}。这已经过测试并且工作正常。
我现在想要调用 webhook POST URL,以便使用定义的这些选项远程触发作业(从 Web 仪表板,使用 PowerShell)。我尝试将选项添加到 URL 末尾,但没有成功:
http://mywebhookuri#myjobname?opt.VMName=$VMName&opt.CPU=$CPU&opt.Memory=$Memory
http://mywebhookuri#myjobname?VMName=$VMName&CPU=$CPU&Memory=$Memory
Run Code Online (Sandbox Code Playgroud)
以下 PowerShell 代码用于调用 Webhook:
$WebHookURI = "http://mywebhookuri#myjobname"
$header = @{}
$header.add("Content-Type","text/plain")
$body = @{} | ConvertTo-Json
$result = Invoke-RestMethod -Method Post -Uri $WebHookURI -Body $body -Headers $header
Run Code Online (Sandbox Code Playgroud)
webhook 插件和运行作业使用的文档指出“插件收到的 JSON 可用于提供选项、节点过滤器和运行身份用户”,但没有显示明确的示例任何一个。
如何成功地将这些选项传递到 webhook URL?
按照文档,您需要以这种方式定义选项,然后调用传递 JSON 数据,我做了一个示例,但使用 cURL:
curl -H "Content-Type: application/json" -X POST -d '{"field1":"hello world"}' http://yourhost:4440/api/34/webhook/3moY0Ru1zxl5gM0tpVlecJ5BN1LPyhsx#New_Hook
Run Code Online (Sandbox Code Playgroud)
这是这个工作定义的例子:
curl -H "Content-Type: application/json" -X POST -d '{"field1":"hello world"}' http://yourhost:4440/api/34/webhook/3moY0Ru1zxl5gM0tpVlecJ5BN1LPyhsx#New_Hook
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3884 次 |
| 最近记录: |