Rundeck JSON jq key/value mapper日志过滤器输出变量后续步骤无法访问问题
Rundeck 3.4.x 版本JSON jq key/value mapper过滤器跨步骤变量无法获取解决方案
核心问题为变量引用格式错误、漏开导出配置导致,具体解决步骤如下:
1 修正步骤1的日志过滤器配置
- 确认
JSON jq key/value mapper过滤器已勾选导出为变量选项,3.4.x版本该选项默认未启用,你之前使用的Key Value、正则过滤器默认开启该选项,所以此前使用正常。 - 保留原有配置即可:jq表达式填
.,前缀填data。
2 修正步骤2的变量引用格式
Rundeck 跨步骤引用前序步骤导出的变量,固定格式为${步骤序号:变量前缀.键名},你这里JSON输出是作业的第1个步骤,前缀为data,要获取Simple字段的值,正确的引用方式是${1:data.Simple}。
WinRM PowerShell步骤属于远程执行步骤,Rundeck会在发送脚本到目标节点前完成变量替换,所以步骤2的代码直接写为:
Write-Output "${1:data.Simple}"
即可正常输出值。
3 常见排查项
- 如果调整后依旧无法获取,可先新增一个临时的本地Shell步骤,执行
echo ${1:data.Simple},如果该步骤能正常输出Test,说明变量解析正常,问题出在PowerShell步骤的特殊符号转义配置上,可尝试将变量用单引号包裹再测试。 - 如果你调整过作业步骤顺序,需要把变量引用中的步骤序号
1替换为JSON输出步骤的实际序号。 - 如果你的JSON输出包含多行内容,要确认过滤器勾选了「匹配多行」选项。
内容的提问来源于stack exchange,提问作者LuS
相关产品推荐
相关产品推荐

