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

如何在Rundeck自定义步骤中读取当前作业的其他步骤信息?

在Rundeck自定义步骤中访问作业步骤信息的方法

可以的,你可以通过两种主要方式在Rundeck自定义步骤中获取当前作业的后续步骤名称、类型及参数:

1. 利用Rundeck内置环境变量(脚本步骤首选)

Rundeck会给脚本步骤自动注入多个环境变量,其中RD_WORKFLOW_STEPS是包含所有作业步骤的JSON数组,配合RD_STEP_INDEX(当前步骤的索引,从0开始)就能筛选出后续步骤。

示例Python脚本:

import os
import json

# 读取所有步骤的JSON数据
steps_json = os.environ.get('RD_WORKFLOW_STEPS')
if not steps_json:
    print("无法获取步骤信息")
    exit(1)

steps = json.loads(steps_json)
current_idx = int(os.environ.get('RD_STEP_INDEX', 0))
# 提取当前步骤之后的所有步骤
next_steps = steps[current_idx + 1:]

for step in next_steps:
    print(f"步骤名称: {step.get('name', '未命名')}")
    print(f"步骤类型: {step.get('type', '未知类型')}")
    print(f"步骤参数: {step.get('arguments', {})}")
    print("---")

2. 调用Rundeck API获取完整作业信息

如果是自定义插件步骤,或者脚本步骤无法使用环境变量,可以调用Rundeck的作业详情API来获取所有步骤数据。

示例Bash脚本(需要提前配置API令牌):

# 获取当前作业ID和步骤索引
JOB_ID="$RD_JOB_ID"
CURRENT_STEP="$RD_STEP_INDEX"

# 调用API获取作业详情,解析后续步骤
curl -s -H "X-Rundeck-Auth-Token: YOUR_API_TOKEN" "http://your-rundeck-server:4440/api/42/job/$JOB_ID" | jq ".workflow.steps[$CURRENT_STEP+1:]"

注意事项

  • RD_STEP_INDEX从0开始计数,所以后续步骤的索引是当前索引加1及以后。
  • API版本号(示例中的42)需要匹配你的Rundeck版本,不同版本的API响应结构可能略有差异。
  • 使用API方式时,确保执行步骤的用户或服务账号有足够的权限访问作业详情。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:40:42