说我正在构建我的/ my_company_cookbooks集合,我想使用Github的一个很棒的社区食谱。
我有两个选择
每种策略似乎都有优点和缺点。
Github值得
Github缺点 - 我如何确定我的生产食谱完全取决于我在分期测试时所测试的烹饪书的版本。作者可以忘记在修改代码的同时修改cookbook版本。未经测试的代码更改将到达我的生产环境
本地副本值得 我可以100%确定地测试和推动生产。调试更容易
本地副本缺点
在这件事上有任何想法或最佳做法吗?
由于
答案 0 :(得分:3)
在可能的情况下消费来自社区"超市的食谱"库。例如,以下内容将检索最新版本的graphite:
source 'https://supermarket.chef.io'
cookbook "graphite"
文档显示此烹饪书由heavywater dudes:
管理为什么呢?从源代码存储库中使用cookbook时,您可能会面临将相同版本的备用副本加载到Chef服务器中的小风险。
咦?请解释!
采取以下方案:
您的厨师服务器现在拥有版本1.1的副本,该副本与版本控制系统中版本1.1的最新副本不匹配....
使您需要明确运行" berks update"然后强制重新加载食谱到你的厨师服务器(记得berkshelf冻结食谱),以解决这个问题.....这可能成为一个非常重要的问题,我已被它不止一次烧毁(奇怪的是openstack超市不提供食谱。
如果您与其他开发团队一起使用名字条款,那么最终消费来源:-)如果您渴望稳定,另一种解决方案是仅使用Git标签,这是加载cookbook的最佳做法进入厨师超市做跟进。
Chef超市提供的是厨师烹饪书的发布管理流程。 Git应该跟踪cookbook中文件的所有更改。但它无法检测到烹饪书何时准备好发布。这是开发人员的工作,如果他的行为和遵循合理的工作流程,他会标记他的代码,然后将其推送到某种存储库,供第三方下载。超市提供的是这个过程和存储设施。它是你的朋友我强烈推荐使用它: - )
长吼道歉!治疗: - )
答案 1 :(得分:2)
GitHub位置
从版本1.0.0开始,您现在可以使用GitHub速记来指定 位置。
cookbook" artifact",github:" RiotGames / artifact-cookbook",tag: " 0.9.8"鉴于这个例子,来自RiotGames的神器食谱 artifact-cookbook存储库中的组织,标记为0.9.8 将被克隆到berkshelf。
我认为这样可以消除github的缺点,然后你就没有理由不再使用它了。