我为多个角色的客户端管理多个 Linux 服务器,例如电子邮件、缓存、Web 服务、过滤、防火墙/路由等。
由于我不拥有这些计算机,只是提供远程支持,因此像 Puppet 这样的中央管理系统似乎不是正确的工具。(如果您认为我对这个假设有误,请纠正我)
您推荐使用哪些工具来跟踪配置文件、软件包安装等的更改?
我在想像 etckeeper这样的东西可能接近我需要的东西,但我想知道是否有更好的东西。
更新
我们将对系统进行备份,我不希望这种类型的工具可以替代备份。这是关于跟踪配置的变化,并让系统知道什么时候、由谁以及希望为什么发生了变化。
我的个人工作站上有 etckeeper,但我还没有做太多事情(除了让它跟踪我的所有更改)。似乎它在确保您至少知道被摆弄了什么方面做得很合理。
我不会把 Puppet 当作一个解决方案——只要机器上的一些服务是你维护的责任,那么一个系统可以确保如果有人调整你的配置,它会按照你想要的方式放回是天赐之物。
另一方面,如果其他人定期进行更改(而且他们通常不会搞砸),您可能不得不求助于跟踪其他人为以后的灾难恢复所做的工作。不要忘记所有地方都会发生变化,因此全机检查点工具可能会更好。我什至可能会考虑对其进行全盘增量备份(如 rdiff-backup 之类的),以确保您正在跟踪所有内容(如果您只想将 /home 和其他用户级区域从备份中删除,则可能跟踪管理变化)。
你可能想看看Tripwire或AIDE
两者都将跟踪您机器上的配置文件更改。
我看过etckeeper,但我没有使用它。但是,我使用过Changetrack。多年来,我一直在我所有的家用机器上使用它,在我以前的工作中,它是我们标准服务器安装的一部分。在过去的五年里,我们在那里使用了它,并将它安装在大约 200 个盒子上。
设置很简单(我在上一份工作中为它创建了一个 RPM),而且配置非常简单。我通常将其设置为监视所有 /etc/.
为了在基于 RPM 的系统上跟踪包更改(安装、升级等),只要所有更改都使用
yum
或完成yumex
,每个包更改都会登录/var/log/yum.log
。其他人已经回答了跟踪中的变化
/etc
。不要忘记,您还希望跟踪bind
部分位于/var
(至少在许多 Linux 发行版上)的配置更改,以及许多 Linux 发行版上的网页/var/www
。外面会有一些目录/etc
,上面有重要的配置信息。根据事物的管理方式,您可能还需要跟踪
/usr/local/etc
其他目录树(/opt
、 下的一些树/var
,以及特定于您的客户的任何其他内容)。作为起点,您可能希望查看分析系统配置的Blueprint。虽然它旨在为 Puppet 或 Chef 创建配置,但您没有理由不能将其仅用于报告。
一个简单的文件监控脚本是filemon。我在我的家用PC上使用它,并结合crontab它做了一个简单而容易的工作。对于更复杂的完整性检查解决方案(文件更改、安装的新包和许多其他),我在一堆服务器上使用OSSEC 。
您可以将 /etc 放在 dvcs 下,例如 git。每次进行更改时您都会提交,然后您可以在开始工作时执行 git diff 并显示所有更改。
LBackup支持记录文件删除、修改和添加。