我更像是一个 linux 应用程序开发人员而不是管理员。随着时间的推移,我构建并维护了服务器,有时是为了提供服务,主要是为了开发我正在处理的应用程序。
回到我在我的帐户中创建一个文件来记录我在每台机器上所做的事情的时候,这样我就可以在迁移到其他机器时复制它。
现在,我安装了一些私人的 trac 安装,安装它的博客插件,然后使用它来记录我安装的所有内容、我运行的大多数命令以及输出。这为我提供了一个维基和博客的组合,我发现它作为“船长的日志”非常有用。我这样做主要是为了当我迁移到一台新的干净机器时,我可以更轻松地启动它。
然而,当我看到其他人只是安装这个、删除那个、运行这个、设置这个配置时,我总是感到惊讶……似乎没有使用任何方式来实际记录他们在做什么。
你做什么,有哪些工具可用?
我对为少数人维护几台机器和维护几台到几十台提供真正服务的机器之间的过渡特别感兴趣。
什么是最佳实践,我在哪里可以找到好的资源?
谢谢!
答案肯定是正式的配置管理。目前该领域的三大竞争者是 Chef、Puppet 和 Cfengine。基本上,您需要将开发方法应用于系统管理:编写一个定义机器状态的“程序”,并应用它(显然这是一个粗略的简化)。
事实是,我们中的许多硬着头皮的 linux 管理员“神奇地”配置了机器,因为经过多年的重复,我们已经完全内化了这些知识。我大约知道我需要在任何给定机器上访问的配置文件列表,并且我可以从内存中手动编辑这些文件。这实际上是一种糟糕的做事方式,尤其是当您有多个服务器或多个系统管理员时。手动编辑配置文件始终是计划和管理不善的标志。
我非常喜欢使用Clonezilla加 PXE 引导来自动启动系统,并将足够的详细信息放入 Kickstart 配置中,以便机器连接到网络并运行您选择的 CM 工具。除了最基本的“启动系统,将其放在网络上”逻辑之外的所有内容都应该在您的 CM 工具中,而不是在您的初始系统映像或 Kickstart 中。
作为参考,我目前管理着大约 10,000 台 unix 服务器。