我们的服务器有各种服务,并有自己的配置文件。Nginx、Dovecot、Postfix……
所有这些配置文件都位于它们自己的 /etc/{service} 目录中。
我正在尝试将这些文件移动到一个中心位置并添加一个符号链接。例如:
/etc/postfix/main.cf <- /root/server-config/postfix/main.cf
以上方法适用于大多数服务(Nginx、PHP 等)。但是,一些与电子邮件相关的服务会出现权限被拒绝的错误。我尝试了许多不同的选项,例如为符号链接和源文件提供更多权限、提供最大权限(777)、以 Root 身份运行、将 dovecot/postfix 添加到 root 组等。
我尝试过的所有选项都没有任何效果。我们的主要目标是将所有配置文件放在 git 存储库中,并将它们推送到 GitHub,以便我们对它们进行版本控制。
我该怎么做才能使上述工作顺利进行?
如果您有不适用于 git 或符号链接的替代方案,请将其添加为注释。
答案1
我认为将配置文件从默认位置移动到另一个位置并创建指向它们的符号链接的想法并不好,它会产生很多问题。
- 如果符号链接因某种原因损坏,相关软件或服务可能会停止工作,这会使您的系统和服务变得脆弱且无法使用。您可能还会发现很难修复。所以你应该考虑反过来做。
您可以考虑使用以下工具etckeeper它允许您自动将对/etc
或 (其他目录) 所做的更改存储到版本控制系统中,例如git
。然后您可以将它们推送到中央 git 存储库。
答案2
您为什么认为需要将它们移动到 git repo 中?etckeeper 之类的工具已经存在,它们将所有内容保存在 git repo 中。
还有大量的配置管理您可以使用/应该使用的工具(puppet、chef、ansible 等)来配置事物。然后,您可以将配置管理配置保存在 git 存储库中。
许多配置文件需要特定的所有者和权限。请不要认为 root:root 是正确的,而 0777 的权限对于配置文件来说绝对是糟糕的。这几乎肯定意味着系统上任何微小的损害都会成为一切的损害。