管理 Linux 集群

管理 Linux 集群

我有兴趣了解用于管理多台 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/aptitudeyum或其他任何内容来更新服务器上的包。

有没有更好的方法来做这样的事情?

答案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 编写的。

我有很多链接,但我猜新用户无法发布超链接。

相关内容