何时使用配置管理器(例如 Puppet / Chef / Ansible)合适?

何时使用配置管理器(例如 Puppet / Chef / Ansible)合适?

在我目前的工作场所,我负责管理两台 VMware 主机、一台 OpenBSD 物理机、三台 Debian VM 和六台 Windows Server VM(2008/2012)。

我正在考虑实施配置管理工具,例如 Puppet 或 Chef。这是否合理,或者学习该工具的开销是否超过其收益?可管理性和实施成本之间的临界点在哪里?

答案1

我认为,即使你只管理一台服务器,这也是值得学习的,

是的,会有一个学习曲线。是的,你会感到沮丧。不过,对于这些成本,你将通过可靠、一致、一键式部署、版本控制的服务器配置、轻松设置测试/开发环境等获得成倍的回报。

除了对你目前的工作有好处之外,能够将 CM 系统添加到你的简历中也是一大优势。现代系统管理员现在至少应该具备接触如果没有熟练掌握,就无法掌握配置管理系统。

(旁注:也考虑一下 Ansible。这是我首选的 CM,并且非常易于启动和运行 - 比 Puppet 或 Chef 容易得多。此外,Ansible 中的 Windows 支持进展顺利。)

答案2

我正在考虑实施配置管理工具,例如 Puppet 或 Chef。这是否合理,或者学习该工具的开销是否超过其收益?

这是合理的,取决于你有多少时间和金钱可供消耗,以及你消耗的是否是你自己的费用。

配置管理工具(其中任何一种)正在成为当今市场上一项宝贵的技能。

从您的业务或环境的角度来看,花时间学习和实施 CM 工具可能不是最有效的事情,但从您的技能来看,这可能是值得的。

可管理性和实施成本之间的临界点在哪里?

大多数配置管理工具都是免费的,但安装和启动起来比较困难。

这个问题有点难以回答,因为它实际上取决于您每天管理这些服务器的工作内容。如果您不需要做太多工作,那么配置管理工具可能完全是多余的。

如果您实际上只需要将基础设施强制置于可预测的基本状态,那么掌握 SaltStack 或 Ansible 之类的基础知识可能不会造成太大损害。

根据我的个人经验,Salt 非常容易启动和引导到服务器上,并且可以用于非常基本的远程执行和报告,如果您的环境中尚未实现它,它可能会派上用场。

请记住,我是有偏见的。你应该自己评估每个 CM 工具。

答案3

就像 @EEAA 所说的那样 - 服务器数量无关紧要。您可以使用单台机器进行配置管理,从而获得以下好处:

  • 记录设置(通过 CM 脚本记录)
  • 可靠的部署(你可以反复部署你的设置
  • 设置的弹性(当前服务器崩溃 - 启动一个新服务器)
  • 重用(当您拥有第二台服务器时 - 您已经拥有 CM 脚本,您可以从第一台服务器中回收利用)
  • 升级(有点像新的设置,只是在不同的平台上)

我可以说,我必须为我的所有个人服务器实施 CM,因为我很少在那里工作,而且会忘记所有的细节。虽然拥有 CM 脚本似乎很耗时(事实确实如此),但回报是值得的。从长远来看,您将节省更多花在设置上的时间。

答案4

Puppet 或任何其他管理系统都带来了巨大的好处,这些好处已被这里的其他答案所强调,但在管理方面,没有灵丹妙药。

例如,为复杂系统创建 puppet 类需要花费大量的时间和精力,有时甚至会因为存在许多陷阱而流泪,并且错误消息并不总是 100% 清楚,并且当软件升级时,您必须投入时间来调整 puppetclasses 以匹配任何新的规范或程序,并找出最适合此目的的方法(例如,puppet 是声明性的,而升级通常是程序性的)

您还需要弄清楚如何以可控的方式推出对课程所做的更改,以及如何维护清单的不同版本。

您还应该考虑在需要的时候如何升级您的管理解决方案。

如果您花费大量时间编写例如 puppet 类,那么您必须执行大量的一键安装才能获得任何实际好处。

我建议在适当的地方进行持续的探索,即配置文件的分发可以是一个很好的起点,然后从那里开始。

相关内容