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

如何批量修改Rundeck项目下所有作业的option strict值?

批量修改Rundeck项目中所有作业的选项值

方法1:用Rundeck API批量操作

适合自动化场景,灵活性高:

  1. 先获取目标项目下的所有作业ID(需提前安装jq工具):
curl -X GET -H "X-Rundeck-Auth-Token: 你的认证令牌" http://你的Rundeck地址:4440/api/38/projects/新项目名/jobs | jq '.[] | .id'
  1. 遍历每个作业,修改选项后提交更新:
# 替换为你的实际信息
RUNDECK_TOKEN="你的令牌"
RUNDECK_SERVER="http://你的Rundeck地址:4440"
PROJECT_NAME="新项目名称"
TARGET_OPTION="target"
NEW_STRICT_VALUE="要修改的新strict值"

# 获取所有作业ID
JOB_IDS=$(curl -s -X GET -H "X-Rundeck-Auth-Token: $RUNDECK_TOKEN" "$RUNDECK_SERVER/api/38/projects/$PROJECT_NAME/jobs" | jq -r '.[] | .id')

# 逐个修改作业
for JOB_ID in $JOB_IDS; do
    # 拉取作业的JSON定义
    JOB_JSON=$(curl -s -X GET -H "X-Rundeck-Auth-Token: $RUNDECK_TOKEN" "$RUNDECK_SERVER/api/38/job/$JOB_ID")
    # 修改target选项的strict值
    UPDATED_JOB_JSON=$(echo "$JOB_JSON" | jq --arg new_val "$NEW_STRICT_VALUE" '.options[] |= if .name == "'"$TARGET_OPTION"'" then .strict = $new_val else . end')
    # 提交更新
    curl -X PUT -H "X-Rundeck-Auth-Token: $RUNDECK_TOKEN" -H "Content-Type: application/json" -d "$UPDATED_JOB_JSON" "$RUNDECK_SERVER/api/38/job/$JOB_ID"
done

注意:API版本号(示例中为38)需与你的Rundeck版本匹配,可在Rundeck内置API文档中确认对应版本。

方法2:导出作业批量修改后重新导入

适合不想写脚本的场景:

  1. 导出新项目所有作业:进入项目 → 作业 → 导出,选择导出所有作业为JSON格式。
  2. 批量修改JSON里的strict值:
jq --arg new_strict "你的新strict值" '.[] | .options[] |= if .name == "target" then .strict = $new_strict else . end' 导出的文件名.json > 修改后的文件名.json
  1. 重新导入:回到项目 → 作业 → 导入,选择修改后的JSON文件,导入时勾选“覆盖现有作业”即可。

方法3:使用Rundeck CLI工具(rd-cli)

如果经常和Rundeck交互,rd-cli操作更顺手:

  1. 先配置rd-cli连接信息:
rd configure set server http://你的Rundeck地址:4440
rd configure set token 你的认证令牌
  1. 批量修改作业:
PROJECT_NAME="新项目名称"
NEW_STRICT="你的新strict值"

# 遍历所有作业ID
for JOB_ID in $(rd jobs list -p $PROJECT_NAME | awk '{print $1}'); do
    # 导出单个作业JSON
    rd jobs get -i $JOB_ID > temp_job.json
    # 修改strict值
    jq --arg val "$NEW_STRICT" '.options[] |= if .name == "target" then .strict = $val else . end' temp_job.json > updated_temp_job.json
    # 更新作业
    rd jobs update -i $JOB_ID -f updated_temp_job.json
done
# 清理临时文件
rm temp_job.json updated_temp_job.json

注意事项

  • 操作前务必备份作业,避免误改导致数据丢失。
  • 如果作业里的选项是嵌套分组结构,需要调整jq的过滤表达式,确保能定位到正确的选项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 17:40:26