You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置Rundeck Conditional options variables实现关联变量自动赋值

Rundeck 条件关联变量设置方案

一共有两种实现方式,可根据你的规则复杂度选择:

方式1:选项内置三元表达式(适合规则简单的场景)

不需要修改作业执行步骤,直接在选项配置里完成关联:

  • 第一步:创建主输入选项
    进入作业编辑页的「选项(Options)」模块,新增名称为cust的选项,类型可设为文本或下拉列表,允许用户在启动作业时输入/选择对应值。
  • 第二步:配置关联变量ID
    新增名称为ID的选项,根据你的需求决定是否勾选「隐藏(Hidden)」,在默认值输入框填入表达式:
    ${option.cust == "Customer01ID" ? "MyID" : "自定义的其他默认ID"}
    
    多客户规则可以用嵌套写法:
    ${option.cust == "Customer01ID" ? "MyID" : option.cust == "Customer02ID" ? "MyID2" : "默认ID"}
    
  • 第三步:配置关联变量Oracle_schema
    新增名称为Oracle_schema的选项,同样按需设置隐藏属性,默认值填入:
    ${option.cust == "Customer01ID" ? "Myschema" : "自定义的其他默认schema"}
    

注意:如果需要用户在提交作业时就能看到自动填充的关联值,不要勾选关联选项的隐藏属性,页面会根据你选择的cust值实时刷新默认值

方式2:脚本设置全局变量(适合规则复杂的场景)

如果匹配规则超过5条,或者需要做更复杂的逻辑判断,优先用这种方式:

  • 第一步:只需要创建cust主输入选项,不需要提前创建ID和Oracle_schema选项。
  • 第二步:在作业的第一个步骤添加内联脚本(以bash为例),代码如下:
    # 根据cust值匹配对应参数
    case "@option.cust@" in
      "Customer01ID")
        TARGET_ID="MyID"
        TARGET_SCHEMA="Myschema"
        ;;
      "Customer02ID")
        TARGET_ID="MyID2"
        TARGET_SCHEMA="Myschema2"
        ;;
      *)
        # 未匹配到的默认值
        TARGET_ID="default_id"
        TARGET_SCHEMA="default_schema"
        ;;
    esac
    # 输出为Rundeck全局变量,后续所有步骤均可调用
    echo "RD_TARGET_ID=${TARGET_ID}" >> ${RD_OUTPUT}
    echo "RD_TARGET_SCHEMA=${TARGET_SCHEMA}" >> ${RD_OUTPUT}
    
  • 第三步:后续所有作业步骤中,直接用@RD_TARGET_ID@、@RD_TARGET_SCHEMA@调用对应值即可,用法和普通选项变量完全一致。

提示:Rundeck 3.3.x以下版本对选项内置表达式的支持不完善,建议优先使用第二种方式,兼容性更好。

内容的提问来源于stack exchange,提问作者kuroi Akosih

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:36:02