如何在Rundeck v5.2.0中获取NODE1输出并在自身执行命令发送至NODE2
在Rundeck v5.2.0中跨节点传递作业输出并发送请求的实现方案
实现思路
分两步完成:先在NODE1上执行脚本并将输出捕获到Rundeck变量中,再在Rundeck服务器本地调用PowerShell脚本,把变量内容发送至NODE2。
具体步骤
1. 配置NODE1脚本步骤并捕获输出
- 打开Rundeck新建/编辑目标作业,添加「执行脚本」步骤
- 节点选择
NODE1,脚本类型选「PowerShell」 - 填入你的业务脚本,确保最后输出
True或False(示例:Write-Output (Get-YourConditionCheckResult)) - 进入步骤高级选项,勾选「将输出存储到数据变量」,设置变量名为
node1_output(可自定义)
2. 配置Rundeck本地的请求发送步骤
- 添加新的「执行脚本」步骤,节点选择Rundeck服务器(可填
localhost或对应服务器节点标签),脚本类型选「PowerShell」 - 编写发送请求的脚本,引用第一步捕获的变量:
# 获取NODE1的输出结果 $nodeResult = "${data.node1_output}" # 发送请求到NODE2,根据实际接口调整Uri、请求方法和参数格式 Invoke-WebRequest -Uri "http://NODE2/your-target-endpoint" -Method Post -Body @{status = $nodeResult} -ContentType "application/x-www-form-urlencoded"
注意事项
- 确保Rundeck服务器的PowerShell环境具备访问NODE2的权限(如防火墙放行、接口认证配置等)
- 若NODE1的脚本输出包含多余内容,需在脚本中过滤,仅保留
True/False(示例:Write-Output ($yourResult.ToString().Trim())) - 变量引用需严格遵循Rundeck语法:作业级数据变量用
${data.变量名}调用
内容的提问来源于stack exchange,提问作者aristosv
相关产品推荐
相关产品推荐

