linux – 跨多个服务器管理应用程序,或者PXE与cfEngine / Chef / Puppet

我们有一个应用程序运行在几个(大约5个左右,将会增长)的框中.所有机器的硬件都是相同的,理想情况下软件也是如此.
到目前为止,我一直在手动管理它们,并且不再需要(静态IP地址,禁用所有必要的服务,安装所需的软件包……).任何人都可以平衡以下选项的利弊,或建议更聪明的东西吗?

1:在所有盒子上单独安装centos并使用chef / cfengine / puppet管理配置.
这样会很好,因为我想借口学习使用其中一个应用程序,但我不知道这是否真的是最好的解决方案.

2:制作一个完美的盒子并对其进行成像.通过PXE提供图像,每当我想进行修改时,我都可以从新图像重启盒子.
集群人员通常如何在/ etc / sysconfig / network-scripts / ifcfg *文件中处理诸如mac地址之类的事情?我们也使用infiniband,如果hwaddr错误,它也拒绝启动.这些可以在启动时正确生成吗?

我倾向于使用PXE解决方案,但我认为使用munin或nagios进行监控将会更加复杂.任何人都有这种问题的经验吗?

所有服务器都有固态硬盘,速度快,功能强大.

谢谢,
马特.

解决方法

您的群集听起来更像是HPC群集,而不是像我这样的OLTP群集,但我认为我使用的设置也适合您.我把它称为“mpdehaan trifecta”,因为那是编写或管理所涉及的三个工具的人的蠢货.

1.)Cobbler用于基础构建供应. Cobbler是一个项目,旨在成为您的kickstart,pxe,yum-repo,dhcp,dns等系统的交集.它是迄今为止最简单的启动和运行kickstart的方法,您可以根据需要扩展到其他功能.

2.)Puppet用于配置管理.理想情况下,你的补鞋匠内置主机是非常准确的配置,知道刚好足以在启动时打电话回家你的木偶服务器.然后,Puppet将应用您的配置设置,并在您的环境中永久保持一致.

3.)Func用于并行执行多台机器的临时命令.例如“部署新的svn签出代码并重新启动apache”.很容易使用func在一组服务器上调用相同的bash命令,就像cluster-ssh一样.如果你真的想进入它,你可以用一些非常简单的python编写自己的模块.

所有这三个工具都有很好的wiki和有效的irc通道,可以帮助freenode.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...