小规模的自动化 linux 部署和配置管理 - 值得吗?

pQd*_*pQd 24 linux debian automated-install configuration-management

我即将部署大约 25 台运行Debian 的服务器。这些机器将扮演不同的角色——网络服务器、Java 应用服务器、代理、MySQL 机器。环境在未来可能不会增长太多 - 未来 2 年内可能会增加 2-5 台服务器。

我可能会使用fai进行系统安装,但我不确定是否值得为这么小的规模添加cfenginepuppet集中配置管理。

配置管理对于这种规模的环境有意义吗?

Dav*_*ley 29

我建议使用 Debian 预播种的混合,在那里你给安装程序一个文本文件来回答它会问的所有问题,以及 Puppet。

使用预置而不是 FAI 的原因是您不必先设置图像并处理使其保持最新状态。你最终会得到一个与你手工完成的非常相似的安装。当您开始安装新版本时,您必须使用更改更新配置文件,而不必重建新映像。

当您有多个服务器执行相同的角色并且希望它们相同时,配置管理工具特别有用,例如网络服务器集群。但是,它们也可用于配置所有服务器的基本安装。您将要在所有服务器上安装特定的软件包,例如 ntpd 和 MTA。您将要更改所有服务器上的配置文件。另一个好处是,您可以将清单保存在诸如 subversion 之类的内容中,并记录服务器上更改的内容以及更改的人员和原因。在服务器发生故障并且您需要快速重建它的情况下,配置管理也可以成为救命稻草。安装操作系统(使用 FAI 或预置),安装 puppet 并离开它,完全按照以前的方式构建。显然,您需要保留数据备份。

配置管理需要致力于确保您只使用它进行更改,并且会产生前期成本设置,但是一旦您有一个有效的设置,您就不会后悔。

Puppet 是您提到的两种工具中更现代的一种。我真的向任何人推荐它。该配置是一种声明性语言,易于构建更高级别的结构。它周围还有一个非常大的社区,并且总是欢迎人们在邮件列表或 IRC 频道上提供帮助。


nix*_*eek 10

我建议将 CFengine 用于任何超过 2-3 个盒子并且您有一些“模板”概念或执行特定角色的服务器的环境。

为什么?简而言之,它可以减少错误,您有一个工具可以确保文件/目录权限在环境中的任何地方都是正确的,并且当您推出更多服务器时,该工具绝对可以处理所有事情并且永远不会出错。

与即使是熟练的系统管理员在事情已经出错的情况下在 12 小时轮班结束时推出 Web 服务器的情况相比……他们可能还记得需要放在 /etc/random/location 中的那个讨厌的小配置文件吗? /foo/bar 否则应用程序将无法做一些相当重要的事情,比如账单客户?:)

CFengine 等工具也是执行全环境安全更新的好方法。将 Nagios 配置 (NRPE) 放到所有盒子上也是轻而易举的事。无论您是处理五个箱子还是五百箱子,您都可以使用 CFengine 节省时间。

可能值得注意的是,我的环境稍大一些,但是我也为比您注意到的更小的环境部署了 CFengine,因此建议!

可能你的下一个问题是 CFengine 与 Puppet?这是一个更困难的决定,由于(早期)Puppet 的一些不成熟,我总是使用 CFengine,尤其是在错误记录方面......这些天我真的不确定 - 有没有玩过?回顾我与 Puppet 的具体问题,它们与 SSL 证书相关,痛苦地仍然记得我花了 3 个小时诊断 irc.freenode.net/#puppet 中的服务器 <-> 客户端连接问题的时间,并使用了一些大量的 RTFM 和 RTFS发现一个错误,没有被记录下来,卢克说,“啊,这真的很难修复”,但从来没有。:(


Jau*_* Ho 5

除了 cfengine 和 puppet,还有Chef。我强烈建议使用这些工具之一,因为事情总是会朝着意想不到的方向发展。这有助于在集中位置管理事物。

需要认识到的重要一点是,您可能无法获得所有东西,但如果您至少能获得 90%,那就是一个开始。此外,它很有趣,从长远来看会让你的生活更轻松。最后,继续前进是一项很好的技能。