Rundeck 跨作业步骤共享变量

Nav*_*nam 3 variables bash rundeck

我想在 rundeck 作业步骤中共享一个变量。

  1. 初始化作业选项“target_files”
  2. 在步骤 1 中设置变量。

    RD_OPTION_TARGET_FILES=some bash command
    echo $RD_OPTION_TARGET_FILES
    该值打印在此处。

  3. 读取步骤 2 中的变量。
    echo $RD_OPTION_TARGET_FILES

第 3 步无法识别在第 1 步中设置的变量。
除了使用环境变量之外,在 rundeck 上执行此操作的好方法是什么?

ber*_*auz 6

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} 等符号。

  • 值得注意的是,要在工作流中使用变量,您必须指定它来自哪个节点“${data.mvvariable@mynode}”。`${data.myvariable*}` 也有效。 (2认同)