Nav*_*nam 3 variables bash rundeck
我想在 rundeck 作业步骤中共享一个变量。
在步骤 1 中设置变量。
RD_OPTION_TARGET_FILES=some bash command
echo $RD_OPTION_TARGET_FILES
该值打印在此处。
读取步骤 2 中的变量。
echo $RD_OPTION_TARGET_FILES
第 3 步无法识别在第 1 步中设置的变量。
除了使用环境变量之外,在 rundeck 上执行此操作的好方法是什么?
RUNDECK 2.9+ 的详细过程:
1)设置值 - 三种方法:
1.a) 使用“全局变量”工作流程步骤类型,例如填写:Group:="export", Name:="varOne", Value:="hello"
1.b) 向工作流程添加一个“全局日志过滤器”(此处“Amos”引用的数据捕获插件),它采用在作业步骤日志输出上进行评估的正则表达式。例如,使用如下作业步骤命令:
echo "CaptureThis:varTwo=world"
Run Code Online (Sandbox Code Playgroud)
以及全局日志过滤器模式,例如:
"CaptureThis:(.*?)=(.*)"
Run Code Online (Sandbox Code Playgroud)
(除非您在模式中提供单个捕获组,否则不需要“名称数据”字段)
1.c) 使用工作流数据步骤明确定义多个变量。示例内容:
varThree=foo
varFour=bar
Run Code Online (Sandbox Code Playgroud)
2)取回值:
您必须在命令字符串和参数中使用语法 ${ctx.name},在内联脚本中使用 @ctx.name@。在我们的示例中,使用作业步骤命令或内联脚本行,例如:
echo "values : @export.varOne@, @data.varTwo@, @stub.varThree@, @stub.varFour@"
Run Code Online (Sandbox Code Playgroud)
你会回应这四个值。
上下文是方法 1.b 的隐式“数据”和方法 1.c 的“存根”。
请注意,数据步骤非常有限!它只允许从内联脚本中的 @stub.name@ 符号中受益。远程文件中不执行值替换,并且作业步骤命令字符串或参数中不提供 ${stub.name} 等符号。