【问题标题】:Version control of a web server config filesWeb 服务器配置文件的版本控制
【发布时间】:2011-11-01 19:03:42
【问题描述】:

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

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

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

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

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

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

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

/usr/local/etc/apache22/httpd.conf -> /config/apache22/httpd.conf

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

【问题讨论】:

    标签: php apache version-control freebsd


    【解决方案1】:

    如果您使用 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"

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

    【讨论】:

    • 您实际上可能是对的。我正在迁移到 git,但是来自 SVN 我有一个包含 .svn 文件夹的每个子文件夹的图像,并且 TortoiseSVN 报告了一大堆未版本化的文件。这可能是要走的路。谢谢 DerShodan。
    • 但是如果配置文件位于不同的位置怎么办?例如。防火墙配置位于 /etc.我想避免多次 git checkouts。
    • +1 用于提及 DVCS。一。小的。文件夹。一个地方。 (也是一个不错的答案)
    • 关于多个位置的多个配置文件:只要您在 /etc 中,您就可以将所需的文件添加到存储库中。另一种选择是,正如您自己建议的那样,只需将配置移动到一个文件夹中进行跟踪并用符号链接替换原始配置。
    【解决方案2】:

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

    您可以通过仅对您将要自定义的文件使用 'git add /path/to/file 来选择将哪些内容置于版本控制之下。

    然后,'git -m 'commit comment' 和 'git push -u origin master'。

    【讨论】:

      【解决方案3】:

      您是否查看过任何用于执行此类操作的管理工具?我推荐 Puppet 或 Chef,在以前的工作中使用它们来做这类事情。

      【讨论】:

      • puppet / chef 在这里有什么帮助?你能详细说明一下这个想法吗?
      猜你喜欢
      • 2014-07-08
      • 1970-01-01
      • 2013-01-06
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      相关资源
      最近更新 更多