![使用一个命令将更改传播到多个 Linux 服务器](https://linux22.com/image/1314860/%E4%BD%BF%E7%94%A8%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E5%B0%86%E6%9B%B4%E6%94%B9%E4%BC%A0%E6%92%AD%E5%88%B0%E5%A4%9A%E4%B8%AA%20Linux%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我有十几台 CentOS Linux 服务器。总体来说,它们的配置基本相同。
有时我需要添加额外的 cron 作业(/etc/cron.d/ 中的单独 crontab 文件),和/或将新的 BASH/Perl 脚本复制到 10 多个服务器,或者运行 sed 表达式对基本上存在于每 10 多个服务器上的脚本进行微小更改。
我很快就厌倦了在单个主机上做这件事。那么,你们是如何应对这一挑战的?你们有什么秘诀吗?有什么我应该知道的软件吗(免费且可靠)?
我正在寻找通过 SSH 执行此操作的方法,但我也对其他方法很好奇。
答案1
答案2
答案3
我自己会做的是创建一个需要运行命令的服务器列表。在运行命令的机器和运行命令的服务器之间设置 ssh 证书。然后将需要运行的命令添加到脚本中,并让脚本循环遍历运行命令的服务器列表。您可能想要想出一个日志系统,但是错误可能会导致头痛。
IE:
服务器列表:
10.0.0.1
10.0.0.2
10.0.0.3
运行命令的脚本
#!/bin/bash
for server in `cat servers.lst`
do
ssh server some-command >> log.txt
done
答案4
CF引擎正是出于这个目的,它已经存在很长时间了。
如果您需要以下最佳配置管理解决方案:
- 最快、最具可扩展性的解决方案
- 了解系统的实际状态
- 具有最佳安全记录的解决方案
- 充分的灵活性和精细的控制
- 成熟且适合企业的解决方案