我有兴趣了解用于管理多台 Linux 机器的工具和技术。(即部署和维护更新。)
我想到的一个方法是编写一个 Bash 脚本,将另一个脚本上传到服务器并按顺序为每个服务器执行该脚本。例如:
foreach server
{
connect to server and scp update_script.sh to ~/scripts
ssh user@server -e "sh ~/scripts/update_script.h"
}
update_script 会使用apt-get/aptitude
或yum
或其他任何内容来更新服务器上的包。
有没有更好的方法来做这样的事情?
答案1
尝试 Puppet
另一个优秀(真正优秀)的工具是 Webmin,如果您添加多个运行 webmin 的服务器(在 webmin 界面中),您可以在其集群页面中推送更新并查看包配置。
另一种更适合推出镜像的替代方案是 SystemImager
答案2
集群SSH就是你要找的东西。它提供了一种向集群中的所有节点广播命令的方法。可以把它想象成BashReduce无减少。
答案3
其他人已经提到了 Puppet。
同样,我推荐 Cfengine。学习难度可能有点大,但一旦掌握了窍门,它就很棒了。我用它来管理大约 50 台服务器,简直不敢相信我曾经没有它。
答案4
查看 Func 如何在多个服务器上同时运行“事物”。谷歌搜索“func redhat”
此外,如果您喜欢 puppet,您应该查看 Chef opscode dot com。它解决了一些 puppets 问题,并且配置文件是用 ruby 而不是 DSL 编写的。此外,ohai 是 facter 的更具信息性的版本。Bcfg2 也是用 python 编写的另一个配置管理工具。它非常适合高安全性或审计,因为每个包都可以被记录下来,所以如果在 bcfg2 之外添加了某些东西,它会发出警报。它的缺点是配置文件本身是用 XML 编写的。
我有很多链接,但我猜新用户无法发布超链接。