我想知道拥有多个组件团队的项目如何管理他们的食谱集?
我们正在尝试弄清楚如何让运维团队提供一套“通用组件”手册,供其他也将编写自己的手册的团队重复使用。例如,运维团队应该拥有 Java 手册,而组件则管理为其组件或构建引擎编写的手册。
从我对 Chef 服务器的一点经验来看,这种工作流程似乎没有得到很好的支持,因为服务器存储并管理所有的食谱 - 所以有可能覆盖另一个团队编写的食谱。
其他项目如何处理此类问题?
答案1
版本控制系统(如git哪个Michael Hampton 提到) 是解决此问题的常用方法:您的团队编辑他们的食谱并将其存储在 git 存储库中,服务器在需要推送配置时将其检出。
这里有一点额外的复杂性(您要确保您的食谱不会相互覆盖或产生冲突),但这可以通过人为因素控制来解决(确保您的团队相互交流),或者如果您有雄心壮志,您可以使用 git hooks 以编程方式确保您不会陷入麻烦。
将您的食谱存储在版本控制中还有其他好处 - 例如能够对其进行分支开发,并且如果发现严重损坏,可以轻松回到以前的修订版本。