通过COC实现免登录向多台ECS发送执行命令
实践场景
在当前企业级数字化转型的深水区,华为云弹性云服务器(ECS)的承载量呈指数级增长,支撑着业务系统的稳定运行。然而,在华为云云运维中心(COC)的日常运营实践中,面对由数百甚至数千台ECS组成的大规模资源池,传统的运维模式正面临严峻的挑战。
在未引入COC批量执行能力前,运维团队通常依赖远程桌面(RDP)或SSH逐台登录实例进行操作。这种 “人机对话” 式的运维模式在资源数量较少时尚可维持,但在处理版本批量升级、大规模配置对齐、突发安全基线加固、健康巡检脚本批量下发等高频场景时,暴露出了极高的人力成本和低效率问题。人工操作的时延直接导致业务响应变慢,且随着实例数量增加,一致性难以保证。
在大规模运维场景下,传统运维手段陷入了效率与风险的冲突:
- 效率冲突:手动vs批量
逐台操作的线性耗时与业务需求的非线性增长形成矛盾。例如,更新10台服务器可能仅需半小时,但更新100台则需数小时甚至更久,这不仅占用了大量人力资源,还导致运维窗口过长,挤占业务可用时间。
- 风险冲突:人为失误vs一致性
人工手写脚本或重复输入指令时,极易因疲劳导致命令拼写错误、参数配置错误(如路径错误、版本号错误)。更严重的是,不同运维人员在不同时间点的操作缺乏统一标准,导致集群内出现 “配置漂移”,即虽然硬件相同,但软件环境不一致,这是导致线上故障的常见根源。
解决方案
华为云云运维中心(COC)提供的批量执行命令功能构建了一套标准化、自动化、可审计的运维闭环,将原来的 “串行人工运维” 升级为 “并行自动运维”:
- 以批量替代串行,降本增效该功能支持基于标签、企业项目或资源池一键筛选多台ECS,将原来数小时的人工操作压缩至分钟级。运维人员只需编写一次标准化脚本(支持Shell/Python),系统即可通过UniAgent代理并发下发至所有目标实例,实现大规模操作的并行处理,极大提升了运维响应速度。
- 以标准化规避风险,保障一致性解决方案强制要求脚本前置验证和操作系统隔离(Linux和Windows分开执行)。通过统一的脚本仓库和标准化的操作参数,消除了人为随意性,确保集群内所有实例在同一时间点保持一致的配置状态,从源头减少了 “配置漂移” 和操作失败率。
本文以批量查询多台ECS实例磁盘使用率为例,为您介绍批量执行命令功能。
注意事项
- 所选实例处于运行中状态,才能执行此操作。
- 所选实例UniAgent状态为运行中,才能执行此操作。UniAgent相关操作请参考为主机安装UniAgent。
- 批量操作时,如果勾选的多个ECS不属于同一操作系统,既包含Linux系统ECS,又包含Windows系统ECS,则需要分别进行配置。
前提条件
已注册华为账号并开通华为云,且登录成功。
批量下发命令
- 登录云运维中心。
- 在左侧导航栏选择“资源运维 > 资源批量操作”。
- 选择“弹性云服务器ECS > 执行命令”。
- 参考表1设置批量执行命令。
表1 批量执行命令参数配置 参数
本案例的示例
说明
目标实例
目标ECS实例
单击“添加实例”,选择待执行命令的目标ECS实例。
操作系统
Linux
目标实例的操作系统类型,当前支持Linux和Windows。
请根据目标实例的操作系统类型进行选择。
执行用户
root
Linux系统ECS默认为root,支持手动输入其他用户作为执行用户。
执行计划
立即执行
命令的执行计划,默认为“立即执行”,不可修改。
超时时间
60
单次命令执行的超时时间,超时后会强制终止发送进程。
单位:秒。
命令类型
Shell
发送的脚本命令类型。
命令输入
df -h
输入内容必须为单次执行可返回结果的命令,即不支持与命令返回信息进行二次交互。
图1 设置批量执行命令
- 单击“确定”,等待命令执行完成。
验证执行结果
命令执行完成后,可在命令输出栏查看执行结果。
单击实例名称可切换页签查看对应ECS实例磁盘使用率。