Web 服务器配置文件的版本控制

Mic*_*l M 7 php apache version-control freebsd

在我和网络架构师之间,我们管理着一堆 Web 服务器(FreeBSD)。他负责所有与服务器/网络相关的事情(IP、防火墙、用户/组等),而我负责所有与网络相关的事情(Apache、PHP、MySQL)。有时职责重叠。

有几次对配置文件进行了一些更改,这些更改或多或少地影响了服务器,我们无法弄清楚我们中的哪些人进行了更改以及原因。

我 - 作为一名 Web 开发人员 - 认为将文件置于版本控制之下是一个很好的做法(我们目前使用 Subversion),这样无论何时我们更改任何内容,我们都必须提交更改评论。它将解决想知道谁做了什么以及为什么做的所有问题。

我想到的特定配置文件是:

  • 防火墙配置
  • apache 配置(附加功能)
  • php 配置 (php.ini)
  • MySQL 配置 (my.conf)

我已经知道,基于这里提出的其他问题,服务器配置文件的想法版本控制是合理的。我唯一担心的是如何在 Web 服务器端正确执行此操作,因为文件位于不同的位置。将整个/usr/local/etc置于版本控制之下似乎毫无意义,因为它不仅包含配置文件。

我想知道是否不创建一个新文件夹,说/config哪个将受版本控制并包含我们需要的所有配置文件,然后用符号链接替换原始/config文件到文件夹中的文件。例如:

/usr/local/etc/apache22/httpd.conf -> /config/apache22/httpd.conf
Run Code Online (Sandbox Code Playgroud)

所以问题是:这是一个好主意,如果不是,什么是更好的解决方案?

Der*_*dan 5

如果您使用 GIT,那么将整个 /usr/local/etc版本置于版本控制之下并不是毫无意义的。

  • 如果您如此选择,您只能跟踪少数文件
  • 跟踪所有配置文件的工作目录的大小几乎没有

只需安装 git,然后去/usr/local/etc编写git init. 这将在您当前的位置创建 .git 文件夹(基本上使这个文件夹成为一个存储库)。

然后添加要跟踪的配置文件: git add firewall/firewall_config.conf apache2/httpd.confetc 并提交:git commit -m "Initial Configuration"

现在正在跟踪您的配置文件。