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

Rundeck Community版4.13.0如何在多台AWS RDS实例执行SQL脚本

实现Rundeck批量在AWS RDS实例上运行SQL脚本的方案

不需要专门的RDS插件,用Rundeck自带功能+AWS CLI/数据库客户端就能搞定,以下是具体可落地的方案:

方法一:静态配置RDS节点,结合数据库客户端执行SQL

1. 配置Rundeck节点信息

  • 将所有目标RDS实例添加为Rundeck节点,在节点属性中存储RDS的核心连接信息(建议用Rundeck加密功能存储密码)。示例resources.xml节点配置:
<node name="rds-mysql-prod-01" 
      hostname="rds-mysql-prod-01.xxxxxx.us-east-1.rds.amazonaws.com" 
      port="3306" 
      db_name="business_db" 
      db_user="admin" 
      db_pass="${encrypt:xxxxxx}" 
      osFamily="unix"/>

2. 创建命令执行作业

  • 新建Rundeck作业,添加命令步骤,根据数据库类型选择对应客户端工具(需确保Rundeck所在EC2已安装对应客户端):
    • MySQL场景命令示例:
    mysql -h ${node.hostname} -P ${node.port} -u ${node.db_user} -p${node.db_pass} ${node.db_name} < /opt/rundeck/scripts/your_sql_script.sql
    
    • PostgreSQL场景命令示例:
    psql "host=${node.hostname} port=${node.port} dbname=${node.db_name} user=${node.db_user} password=${node.db_pass}" -f /opt/rundeck/scripts/your_sql_script.sql
    

3. 批量执行

  • 在作业执行界面勾选所有目标RDS节点,触发作业即可完成批量SQL执行。

方法二:动态获取RDS实例列表(按标签/属性筛选)

如果需要按标签等条件动态获取同账号下的RDS实例,可通过以下步骤实现:

  1. 给Rundeck所在EC2实例绑定IAM角色,赋予rds:DescribeDBInstances权限。
  2. 在作业中添加脚本步骤,用AWS CLI筛选目标RDS实例:
# 筛选标签为Environment=Production的RDS实例,输出端点列表
aws rds describe-db-instances --filters "Name=tag:Environment,Values=Production" --query "DBInstances[*].Endpoint.Address" --output text
  1. 基于输出的端点列表,循环调用数据库客户端执行SQL脚本(可编写Shell脚本实现循环逻辑)。

方法三:使用Rundeck JDBC步骤(适合单条/短SQL)

  • 新建作业时选择JDBC步骤,配置对应数据库的JDBC连接信息:
    • 驱动类:MySQL用com.mysql.cj.jdbc.Driver,PostgreSQL用org.postgresql.Driver
    • JDBC URL:jdbc:mysql://${node.hostname}:${node.port}/${node.db_name}
    • 用户名/密码:直接引用节点属性中的加密值
  • 在步骤中直接输入SQL语句,或指定Rundeck服务器可访问的SQL文件路径即可执行。

关键注意事项

  • 数据库密码必须用rundeck encrypt password命令加密后存储,禁止明文配置。
  • 测试阶段先在单台RDS实例验证SQL脚本正确性,再批量执行。
  • 确保Rundeck所在EC2的安全组允许访问RDS实例的数据库端口(如3306、5432)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 07:17:21