gpt4 book ai didi

bash - Rundeck 跨作业步骤共享变量

转载 作者:行者123 更新时间:2023-11-29 09:35:07 25 4
gpt4 key购买 nike

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

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

    RD_OPTION_TARGET_FILES=一些 bash 命令
    回显 $RD_OPTION_TARGET_FILES
    该值打印在此处。

  3. 从第 2 步读取变量。
    echo $RD_OPTION_TARGET_FILES

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

最佳答案

RUNDECK 2.9+的详细流程:

1) 设置值——三种方法:

1.a) 使用“全局变量”工作流步骤类型例如填写:Group:="export", Name:="varOne", Value:="hello"

1.b) 向工作流添加一个“全局日志过滤器”(此处由“Amos”引用的数据捕获插件),它采用根据作业步骤日志输出评估的正则表达式。例如,使用如下作业步骤命令:

   echo "CaptureThis:varTwo=world"

和全局日志过滤模式,如:

   "CaptureThis:(.*?)=(.*)" 

(除非您在模式中提供单个捕获组,否则不需要“名称数据”字段)

1.c) 使用工作流数据步骤明确定义多个变量。示例内容:

varThree=foo
varFour=bar

2) 取回值:

您必须在命令字符串和参数中使用语法 ${ctx.name},在 INLINE 脚本中使用 @ctx.name@。在我们的示例中,使用作业步骤命令或内联脚本行,例如:

echo "values : @export.varOne@, @data.varTwo@, @stub.varThree@, @stub.varFour@"

您将回显这四个值。

上下文是方法 1.b 的隐式“数据”和方法 1.c 的“ stub ”。

请注意,数据步骤非常有限!它只允许从内联脚本中的 @stub.name@ 符号中获益。远程文件中不执行值替换,并且 ${stub.name} 等符号在作业步骤命令字符串或参数中不可用。

关于bash - Rundeck 跨作业步骤共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37110172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com