十几台服务器要改配置,别再一台台 SSH 了

上周接到一个需求:所有服务器的时区从 UTC 改成 Asia/Shanghai。一共 14 台。

如果是以前,我大概会开 14 个终端窗口(或者写个循环 ssh),挨个执行 timedatectl set-timezone Asia/Shanghai。但这次我换了个做法,用了一个开源运维工具,直接在网页上选中所有主机,贴上命令,一次执行完。

聊聊我从"手动挨个 SSH"到"网页上批量执行"的过程。

手动方式的问题

先说清楚,对于"在多台服务器上执行同一条命令"这件事,技术上有很多方案:

方案一:手动逐台 SSH

bash 复制代码
ssh root@10.0.1.1 "timedatectl set-timezone Asia/Shanghai"
ssh root@10.0.1.2 "timedatectl set-timezone Asia/Shanghai"
# ... 14 台

14 台还能忍,50 台就崩了。而且手动操作容易漏、容易错。

方案二:for 循环 + SSH

bash 复制代码
for ip in 10.0.1.{1..14}; do
  ssh root@$ip "timedatectl set-timezone Asia/Shanghai"
done

好一点,但前提是你得维护一份 IP 列表。而且串行执行的话 14 台要等很久,改成并行又得处理输出混乱的问题。

方案三:Ansible

专业方案,确实好用。但对于我这种只有十几台机器的小团队来说,光是装 Ansible、写 inventory、学 playbook 语法,就够折腾半天的。杀鸡用牛刀。

我后来用的方式

后来同事推荐了一个开源运维工具。GitHub 上有 1 万多 star,AGPL-3.0 协议,没有商业版,直接用就行。

它有个"批量执行"功能,体验大概是这样的:

  1. 先把服务器加到主机列表里(IP + SSH 密钥或密码,做一次就行)
  2. 进"批量执行"页面,勾选要操作的主机
  3. 贴上要执行的命令
  4. 点执行,结果实时回显

不需要在目标服务器上装任何 agent,走的还是 SSH 协议。只不过连接管理、并行执行、结果收集这些事情平台帮你干了。

我那 14 台服务器改时区,从勾选到执行完毕大概一分钟。每台的输出单独展示,哪台成功哪台失败一目了然。

除了批量执行还有什么

既然提到这个工具,顺便说一下它其他几个我在用的功能:

在线终端:浏览器里直接开 SSH 终端,不用开本地终端再 ssh 过去。临时上去看个日志、查个进程挺方便。

文件管理:上传下载文件,比 scp 命令直观。虽然大文件还是 scp 快,但传个配置文件、下个日志绰绰有余。

任务计划:相当于可视化的 crontab。定时任务加在平台上统一管理,不用挨个机器去改 crontab 了。

应用发布:支持简单的部署流程编排。我们的发布流程比较简单(拉代码、重启服务),用这个够了。复杂流程可能还是得上 CI/CD。

什么时候适合用这类工具

说几个判断标准:

  • 服务器数量在 10-100 台这个量级
  • 团队没有专职 DevOps,运维工作是开发顺带做的
  • 不想花时间学 Ansible/SaltStack 那套体系
  • 需要一个有界面的东西,不想全靠命令行和脚本

如果你管着几百台以上,或者有复杂的编排需求,那 Ansible/Terraform 这类工具更合适。这个工具解决的是"中小团队的日常运维效率"问题,不是替代专业 DevOps 工具链。

有兴趣的可以去 GitHub 搜 openspug/spug 看看,README 写得挺清楚的。

相关推荐
YoungStudyAI8 小时前
QA的下一个自动化阶段,可能不是再写更多脚本,而是设计测试Agent
运维·自动化
分布式存储与RustFS9 小时前
纠删码到底吃掉了多少容量:EC:4、EC:8 的利用率与容错怎么算
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
遇见小修修10 小时前
3步解决打印机0x00000709报错 ,广州深圳程序员可自行排查
运维·打印机·维修·打印机报错·打印机运维·打印机故障自查
Huangjin007_11 小时前
【Linux 系统篇(二十五)】文件(二) 系统文件I/O详解
linux·运维·服务器
微小冷12 小时前
Mermaid画甘特图
运维·markdown·甘特图·mermaid·时间图
LBL122013 小时前
内网容器部署FTP日志监控服务
运维·服务器·容器
志栋智能13 小时前
超自动化巡检:驱动持续改进的运维飞轮
运维·自动化
海宇大数据13 小时前
零信任架构实战:基于海宇学历核验版构建自动化风控审查网关
运维·人工智能·架构·自动化
NailiConveyor13 小时前
输送机系统与WMS仓储管理系统集成的5个关键技术点
大数据·运维·自动化·制造·业界资讯
本人手速666+13 小时前
企微开发API如何设计客户冻结状态?WeComApi 在删除、投诉和异常客户场景中的自动化边界
运维·分布式·自动化·企业微信·企微外部群开发·wecomapi·企业微信二次开发