gpt4 book ai didi

git - 系统配置文件(nginx/php.ini 等)的 git repo 的最佳实践

转载 作者:行者123 更新时间:2023-12-04 16:01:27 26 4
gpt4 key购买 nike

我在 CentOS 6 机器上有一个相当(我认为)正常的设置。

我的网站在/var/www/sites 中。

  • /var/www/sites/site1
  • /var/www/sites/site2
  • 等等...

  • 我在每个文件夹中都有一个 git repo。

    我想为各种配置文件创建一个 git repo:
  • /etc/nginx.conf
  • /etc/nginx/sites-available/
  • /etc/php.ini
  • /etc/my.cnf
  • 等等...

  • 我觉得我可以在/etc/文件夹中创建一个 git repo,有一个带有 * 通配符的 .gitignore 来忽略所有,然后强制添加我感兴趣的特定文件。这是不好的做法吗?不知何故感觉有点“脏”。

    如果我决定在/etc/之外有一个我想要的重要文件怎么办,也许某些配置最终在/opt/中。所以也许我应该在/上创建一个 repo。嗯,开始感觉更脏了,尤其是因为这个 repo 会“包含”我的网站 repos ......即使它们通过通配符 .gitignore 被排除 - 它似乎有点......错误。是吗?

    我想另一种方法是创建一个/config/目录,其中包含一个 repo,将所有相关文件移动到其中,然后为文件所在的位置添加符号链接(symbolic link)。不知道这是否会导致不必要的并发症/问题?

    大概我不是第一个想要“配置存储库”的人——大多数人最终会做什么?

    谢谢

    最佳答案

    正如@KamilKiełczewski 的评论所指出的那样,依靠 Docker 容器为您的服务器隔离和设置自定义配置是一种很好的方法。

    否则,对于直接依赖于配置主机的更传统的方法,您可能需要尝试以下三种策略之一:

  • 为您的整个管理一个 Git 存储库 /etc文件夹使用 etckeeper ;
  • 为您的 /etc 管理多个 Git 存储库(部分)文件夹使用自定义配置 vcsh和可选 myrepos ;
  • 或者依赖 GNU stow 和符号链接(symbolic link),使用类似于 that article 的方法...

  • 乍一看,我会说选择 3 会更难维护(因为符号链接(symbolic link)开销),如果您只需要跟踪所有 /etc,选择 1 就可以了。用于备份目的的单个服务器的文件,选择 2 将是更有希望的方法(尽管我没有在具体环境中自己测试过)。

    另外,请注意,Git 并不像大多数 /etc 所需的那样精细地支持文件权限。文件,但 etckeeper 专门设计用于在这方面改进 Git。

    关于git - 系统配置文件(nginx/php.ini 等)的 git repo 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50380483/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com