Configuration 管理开源项目的配置

Configuration 管理开源项目的配置,configuration,open-source,configuration-management,Configuration,Open Source,Configuration Management,在过去的几个项目中,我使用BitBucket私有存储库为不同的项目保持生产就绪配置。 该存储库中的每个项目都有其自己的分支,用于防止敏感和私人信息进入公众视线 一些项目是开源的,同时生活在真实的生产环境中;当需要使用诸如chef、fabric等工具进行部署时,我只需检查与项目相关的必要分支,并将配置上载到生产服务器 我很好奇,当您必须同时管理生产配置和保持项目开源时,如何管理开源项目的配置?简短回答:应用程序存储库不应包含任何特定于部署的配置 虽然不是应用程序代码的配置文件通常会进入项目存储库以

在过去的几个项目中,我使用BitBucket私有存储库为不同的项目保持生产就绪配置。 该存储库中的每个项目都有其自己的分支,用于防止敏感和私人信息进入公众视线

一些项目是开源的,同时生活在真实的生产环境中;当需要使用诸如
chef
fabric
等工具进行部署时,我只需检查与项目相关的必要分支,并将配置上载到生产服务器


我很好奇,当您必须同时管理生产配置和保持项目开源时,如何管理开源项目的配置?

简短回答:应用程序存储库不应包含任何特定于部署的配置

虽然不是应用程序代码的配置文件通常会进入项目存储库以便于使用,但这通常是a)糟糕的安全实践(因此您不愿意开放源代码)和b)违反关注点分离

相反,您应该为所有应用程序部署和脚本创建一个单独的存储库。部署存储库中的文件将引用您的应用程序存储库。按照此模式,应用程序存储库包含“what”,部署存储库包含“how”--这通常因部署而异

此规则的例外情况包括在所有部署中都不会更改的脚本或配置(例如
Procfile
或守护程序脚本),因此应保留在应用程序存储库中