我有几个 Linux 工作站,包括我经常对其进行重大更改的服务器,如果我造成某些损坏,我很乐意能够将其回滚。
因此,我考虑对关键文件夹进行版本控制/etc
,但我想知道其他文件夹是否也需要进行修订控制。您的政策是什么?
我将在此政策中首先包括以下内容:
- 不要版本
/var/log
或其他总是改变的文件夹(您还有其他例子吗?) - 版本
/etc
- 不要嵌套存储库
- 版本所有关键服务配置之外
/etc
,有什么想法吗?
如果能找到更多规则就太好了,否则我可以提供有关我的具体问题的更多详细信息:
- 我在工作站和笔记本电脑上使用 Arch Linux
- 我在我负责的服务器上使用 OpenSuse
- 这些服务器是生产服务器,这意味着如果我破坏了它们的 Apache 服务器并且无法快速回滚它们,那么我的所有同事都会一无所知。
- 我用git作为我们源代码的修订控制,但如果另一个系统更适合这项任务,我会接受它。
答案1
对于系统管理员来说,将系统配置置于版本控制之下是相当常见的。
最简单的方法是使用etckeeper
,它只需极少的手动设置即可完成此操作,并且可以与多种不同的 VCS 交互。它相当出名(可能在您的发行版的存储库中);在 Ubuntu Server 官方文档中有描述,...)
与手动维护 VCS 存储库相比,使用它有一些优点:
它与 apt(以及其他软件包管理器,包括 yum 和 pacman-g2)挂钩,以便在软件包升级期间自动提交对 /etc 所做的更改。它跟踪修订控制系统通常不支持但对 /etc 很重要的文件元数据,例如 /etc/shadow 的权限。
(来自主页的描述)。
有关替代方案的讨论etckeeper
(针对系统管理员),另请参阅关于Unix和Linux的这个问题。
系统范围的配置是应该至少在 Debian 之类的系统上如此/etc/
;我认为其他发行版也类似。只要您安装的程序运行良好,您的关键服务就应该在 中配置/etc/
。