在我目前的工作场所,我负责管理两台 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 类,那么您必须执行大量的一键安装才能获得任何实际好处。
我建议在适当的地方进行持续的探索,即配置文件的分发可以是一个很好的起点,然后从那里开始。