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

时间:2011-08-23 09:22:58

标签: php apache version-control freebsd

在我和网络架构师之间,我们管理着许多Web服务器(FreeBSD)。他负责所有服务器/网络相关的东西(IP,防火墙,用户/组等),我负责所有与Web相关的东西(Apache,PHP,MySQL)。有时责任重叠。

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

我 - 作为Web开发人员 - 认为将文件置于版本控制之下是一个好习惯(我们目前使用的是Subversion),因此每当我们更改任何内容时,我们都必须对更改进行注释。它会解决所有问题,想知道谁做了什么以及为什么做了。

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

  • 防火墙配置
  • apache config(附加内容)
  • php config(php.ini)
  • MySQL config(my.conf)

我已经知道,服务器配置文件的构思版本控制是基于other question asked here的。我唯一担心的是如何在Web服务器端正确地执行它,因为文件位于不同的位置。将整个/usr/local/etc置于版本控制之下似乎毫无意义,因为它不仅包含配置文件。

我想知道是否不创建一个新文件夹,比如/config,它将受版本控制,并将包含我们需要的所有配置文件,然后用符号链接将原始文件替换为{{1文件夹。 E.g:

/config

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

3 个答案:

答案 0 :(得分:4)

如果你使用GIT,那么在版本控制下整个/usr/local/etc根本就没有意义。

  • 如果您选择了
  • ,则只能跟踪一小撮文件
  • 跟踪所有配置文件的工作目录的大小不会太大

只需安装git,然后转到/usr/local/etc并撰写git init。这将在您当前位置创建.git文件夹(基本上将此文件夹设置为存储库)。

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

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

答案 1 :(得分:1)

您是否看过为完成这类工作而制作的任何管理工具?我推荐Puppet或Chef,在以前的工作中使用过它们来做这类事情。

答案 2 :(得分:0)

由于您正在对敏感配置文件进行版本控制,我建议您设置一个内部git服务器,如gitlab。为每个服务器或服务器模板/映像/等创建一个git存储库。转到/目录和'git init'。

您可以通过对要定制的文件使用'git add / path / to / file来选择您在版本控制下的内容。

然后,'git -m'提交评论'和'git push -u origin master'。