我在Rundeck中定义了一个webhook来运行一个特定的作业。这个作业定义了3个选项:${option.VMName}、${option.CPU}和${option.Memory}。作业本身被定义为本地powershell脚本,执行方式为:powershell ${scriptfile} ${option.VMName} ${option.CPU} ${option.Memory}。这已经过测试,工作正常。
我现在要调用webhook POST URL,以便使用定义的这些选项远程触发作业(从Web Jmeter 板,使用PowerShell)。我尝试将选项添加到URL末尾,但未成功:
http://mywebhookuri#myjobname?opt.VMName=$VMName&opt.CPU=$CPU&opt.Memory=$Memory
http://mywebhookuri#myjobname?VMName=$VMName&CPU=$CPU&Memory=$Memory
以下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
webhook插件和run-job用法的文档声明“插件接收的JSON可用于提供选项、节点过滤器和运行方式用户”,但没有给出任何一个清晰的示例。
如何成功地将这些选项传递给webhook URL?
3条答案
按热度按时间rekjcdws1#
根据文档,您需要以this的方式定义选项,然后调用传递JSON数据,我做了一个示例,但使用cURL:
这适用于此作业定义示例:
46scxncf2#
对MegaDrive68k的公认答案补充一些细节(因为这基本上是两个问题):
我在Rundeck webhook定义的“Options”字段中添加了以下内容:
PowerShell代码修改如下:
通过这些更改,我能够成功地使用选项调用Rundeck webhook。
esyap4oy3#
PowerShell的一个更简洁的版本: