假设我有几十台甚至几百台服务器。将文件的中央副本推送到给定目录并发送到所有服务器的最佳方法是什么?例如,我们更新一个 bash 脚本,并将其放在中央存储库中。然后,我们希望存储库自动将更新的 bash 脚本推送到所有服务器。还假设存储库可以通过公钥 ssh 进入所有服务器。
我知道我可以编写一些经过破解的 shell 脚本来循环遍历服务器列表并进行 scp,但必须有更好的方法来管理它。rysnc 怎么样?我很喜欢 GUI 界面,比如,添加服务器,然后简单地上传一个文件,它就会被 scp 到组中的所有服务器。
谢谢。
答案1
答案2
答案3
除了集中配置的其他答案(我们内部使用 chef)..
您还可以使用 svn 文件存储库(例如 subversion),因为它具有文件版本控制功能和 HTTP 前端。
例如,我们有一个在 5 个节点上有 httpd 的 apache 网络服务器场,并且我在 svn repo 中保留了 httpd.conf 和 /etc/httpd/conf.d/www.myserver.com.conf 的副本,这使我们能够轻松地对实例进行更改,并且在出现问题时也可以回滚。
它还代表您的资产数据库中的一个组件,并且如果您自动部署它,则可以用它来确认所有实例都运行相同的配置。
显然,在当今时代,对于具有本地版本控制策略的某些文件服务器,git、mercurial 或 davfs 接口等存储库有很多替代方案。