十几台服务器要改配置,别再一台台 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 写得挺清楚的。

相关推荐
众壹新能源科技15 小时前
逆变器自带无功不够用,加装5MVar SVG后功率因数从0.85回到0.99
运维·人工智能·自动化
..Dauntless..15 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
QMCY_jason15 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特15 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
考拉讲支付15 小时前
母婴亲子服务平台分账架构设计:多场景多方分账与合规清结算实践
大数据·运维·人工智能·微信小程序·架构·微信公众平台
LateFrames16 小时前
“场控软件” 如何容错与运维
运维·容错·led大屏·播控系统·场控软件
あ-16 小时前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
艾伦_耶格宇16 小时前
【DOCKER容器实战】-5 Docker容器镜像的构建
运维·docker·容器
速捷工控 PLC触摸屏还原程序16 小时前
S7-200 SMART程序上传提示密码?维修、改造和换机怎么选处理路径?
运维·服务器
程序员-Benothing17 小时前
Linux抓包分析教程:tcpdump、Wireshark、tshark实战
linux·运维·服务器