如何解决Rundeck 将键数据值作为命令行参数传递
如何将日志过滤器 key-value data
作为参数传递到参考作业之一。
我能够使用作业中可用的选项作为传递子参考作业使用的参数,
但是当我将日志过滤器键值数据变量作为 ${data.my_log_filer_var}
从父作业参数传递时,它不会在子作业中评估,但其他参数传递对于其他选项变量一样适用,我通过如:${option.my_another_var}
如果有任何其他方法可以将 ${data.my_log_filer_var}
传递给我的子作业,请告诉我。
解决方法
在this之后,我做了一个小例子。基本上,您需要在孩子的工作中选择一个选项来“接收”来自父母工作的参数。此示例是您可以import 到您的实例的几个作业定义。
子作业(包含一个选项,该选项从传递数据变量的父作业调用):
- defaultTab: nodes
description: ''
executionEnabled: true
id: 0aeaa0f4-d090-4083-b0a5-2878c5f558d1
loglevel: INFO
name: ChildJob
nodeFilterEditable: false
options:
- name: opt1
plugins:
ExecutionLifecycle: null
scheduleEnabled: true
sequence:
commands:
- exec: 'echo "the argument is: ${option.opt1}"'
keepgoing: false
strategy: node-first
uuid: 0aeaa0f4-d090-4083-b0a5-2878c5f558d1
以及父作业(创建数据值并使用参数 -opt1 ${data.mydata}
将其传递给子作业)
- defaultTab: nodes
description: ''
executionEnabled: true
id: 5c3d4248-9761-45d4-b164-6e38d5146007
loglevel: INFO
name: ParentJob
nodeFilterEditable: false
plugins:
ExecutionLifecycle: null
scheduleEnabled: true
sequence:
commands:
- exec: env
plugins:
LogFilter:
- config:
invalidKeyPattern: \s|\$|\{|\}|\\
logData: 'true'
regex: ^(USER)\s*=\s*(.+)$
type: key-value-data
- exec: 'echo "the data value is ${data.USER},sending to child job using arguments
on job reference step..."'
- jobref:
args: -opt1 ${data.USER}
group: ''
name: ChildJob
nodeStep: 'true'
uuid: 0aeaa0f4-d090-4083-b0a5-2878c5f558d1
keepgoing: false
strategy: node-first
uuid: 5c3d4248-9761-45d4-b164-6e38d5146007
,
global variable
step 可以捕获由 key-value data
log filter 捕获的数据变量。
例如,如果您将键值数据捕获到 export
组,则可以创建一个全局变量 {export.keyname*}
,该变量可用于其他步骤或通知中。请注意,如果您只想要来自单个节点的值,则应改用 {export.keyname@nodename}
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。