求可部署于Rundeck、支持登录EC2查询磁盘与Java版本的bash脚本
适用于Rundeck的EC2批量巡检Bash脚本
功能说明
- 支持批量登录EC2实例,支持按实例ID或标签筛选目标实例,适配万级实例规模的执行需求
- 自动采集并返回目标实例的
df -h磁盘挂载结果、lsblk块设备信息、Java版本信息 - 自带异常捕获逻辑,单台实例连接失败不会中断整体任务,错误信息会明确标注对应实例ID和IP
前置依赖
- Rundeck服务节点已安装AWS CLI v2,绑定的IAM角色拥有EC2实例查询权限
- 所有目标EC2实例已放通Rundeck节点的SSH访问权限,Rundeck已存储对应SSH登录私钥
- 目标实例的默认登录用户统一(默认使用
ec2-user,可根据实际业务修改为ubuntu/root等)
完整脚本代码
#!/bin/bash # 可根据实际业务修改以下默认配置 SSH_USER="ec2-user" SSH_OPTS="-o StrictHostKeyChecking=no -o ConnectTimeout=10 -o BatchMode=yes" # 支持两种筛选方式:1. 传入空格分隔的实例ID 2. 传入AWS标签筛选规则(优先级高于实例ID) if [[ -n "${EC2_TAG_FILTER:-}" ]]; then INSTANCE_LIST=$(aws ec2 describe-instances \ --filters "Name=instance-state-name,Values=running" \ --filters "${EC2_TAG_FILTER}" \ --query 'Reservations[*].Instances[*].[InstanceId,PrivateIpAddress]' \ --output text) elif [[ -n "${EC2_INSTANCE_IDS:-}" ]]; then INSTANCE_LIST=$(aws ec2 describe-instances \ --filters "Name=instance-state-name,Values=running" \ --instance-ids ${EC2_INSTANCE_IDS} \ --query 'Reservations[*].Instances[*].[InstanceId,PrivateIpAddress]' \ --output text) else echo "ERROR: 请传入EC2_TAG_FILTER或EC2_INSTANCE_IDS参数指定目标实例" exit 1 fi # 批量执行巡检命令 echo "${INSTANCE_LIST}" | while read INSTANCE_ID PRIVATE_IP; do echo -e "\n=====================================" echo "实例ID: ${INSTANCE_ID} | 私有IP: ${PRIVATE_IP}" echo "=====================================" ssh ${SSH_OPTS} ${SSH_USER}@${PRIVATE_IP} << 'REMOTE_CMD' echo ">>> 磁盘挂载信息(df -h):" df -h echo -e "\n>>> 块设备信息(lsblk):" lsblk echo -e "\n>>> Java版本信息:" if command -v java &> /dev/null; then java -version 2>&1 else echo "Java 未在当前实例安装" fi REMOTE_CMD # 捕获SSH执行异常 if [[ $? -ne 0 ]]; then echo "ERROR: 实例 ${INSTANCE_ID} 连接/执行失败,请检查网络、SSH配置或实例运行状态" fi done
Rundeck部署配置步骤
- 新建Rundeck作业,执行节点选择部署了AWS CLI的Rundeck服务节点
- 配置作业参数:添加两个可选字符串参数,参数名分别为
EC2_INSTANCE_IDS(传入空格分隔的实例ID)、EC2_TAG_FILTER(传入AWS标签筛选规则,示例:Key=app,Values=payment) - 配置SSH权限:将对应EC2的SSH登录私钥关联到作业的SSH认证配置,填写对应登录用户名
- 优化执行性能:万级实例场景下建议开启并行执行,并行度设置为50~100(根据Rundeck节点性能调整),避免单次任务执行时间过长
内容的提问来源于stack exchange,提问作者Shubham Malve
相关产品推荐
相关产品推荐

