在我和网络架构师之间,我们管理着许多Web服务器(FreeBSD)。他负责所有服务器/网络相关的东西(IP,防火墙,用户/组等),我负责所有与Web相关的东西(Apache,PHP,MySQL)。有时责任重叠。
很少有人对配置文件进行了一些更改,这些更改或多或少地影响了服务器,我们无法弄清楚我们中的哪些人进行了更改以及原因。
我 - 作为Web开发人员 - 认为将文件置于版本控制之下是一个好习惯(我们目前使用的是Subversion),因此每当我们更改任何内容时,我们都必须对更改进行注释。它会解决所有问题,想知道谁做了什么以及为什么做了。
我想到的特定配置文件是:
我已经知道,服务器配置文件的构思版本控制是基于other question asked here的。我唯一担心的是如何在Web服务器端正确地执行它,因为文件位于不同的位置。将整个/usr/local/etc
置于版本控制之下似乎毫无意义,因为它不仅包含配置文件。
我想知道是否不创建一个新文件夹,比如/config
,它将受版本控制,并将包含我们需要的所有配置文件,然后用符号链接将原始文件替换为{{1文件夹。 E.g:
/config
所以问题是:这是一个好主意,如果没有,那么什么是更好的解决方案?
答案 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'。