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