- chef-infra/
- Chef infra 当使用开源厨师烹饪书时,我们应该在Berksfile中克隆或引用吗?
Chef infra 当使用开源厨师烹饪书时,我们应该在Berksfile中克隆或引用吗?
Chef infra 当使用开源厨师烹饪书时,我们应该在Berksfile中克隆或引用吗?,chef-infra,chef-recipe,Chef Infra,Chef Recipe,假设我正在建立我/我的公司烹饪书收藏,我想使用Github提供的很棒的社区烹饪书
我有两个选择
通过在我的Berksfile中添加一行(cookbook'graphite',git:'git://github.com/hw-cookbooks/graphite.git'
)
本地副本-将食谱克隆到my/my_company_cookbooks文件夹中,并保留对其的本地引用
每种策略似乎都有优点和缺点
Github的优点
没有本地副本
由作者轻松完成修复
Github缺点
-我如何确定我的制作
假设我正在建立我/我的公司烹饪书收藏,我想使用Github提供的很棒的社区烹饪书
我有两个选择
通过在我的Berksfile中添加一行(cookbook'graphite',git:'git://github.com/hw-cookbooks/graphite.git'
)
本地副本-将食谱克隆到my/my_company_cookbooks文件夹中,并保留对其的本地引用
每种策略似乎都有优点和缺点
Github的优点
Github缺点
-我如何确定我的制作食谱完全依赖于我在登台时测试的食谱版本。作者可能会忘记在修改代码的同时修改cookbook版本。然后,未经测试的代码更改将到达我的生产环境
本地副本价值
我可以100%确定地测试并投入生产,调试更容易
本地副本
- 如何获得菜谱的更新副本(再次克隆?)
- 我会在git回购中进行git回购
- 通过本地拷贝,其他cookbook开发者可以修改克隆的cookbook,这使得在github上发布新版cookbook时更难同步
在这方面有什么想法或最佳做法吗
感谢您引用以下内容:
GitHub位置
从1.0.0版开始,您现在可以使用GitHub速记来指定
地点
食谱“工件”,github:“RiotGames/工件食谱”,标签:
“0.9.8”给出了这个例子,来自RiotGames的工件烹饪书
工件cookbook存储库中的组织,标记为0.9.8
将被克隆到Berk货架上
我假设这消除了github的缺点,那么您现在就没有理由不使用它了。引用:
GitHub位置
从1.0.0版开始,您现在可以使用GitHub速记来指定
地点
食谱“工件”,github:“RiotGames/工件食谱”,标签:
“0.9.8”给出了这个例子,来自RiotGames的工件烹饪书
工件cookbook存储库中的组织,标记为0.9.8
将被克隆到Berk货架上
我假设这消除了github的缺点,那么您现在就没有理由不使用它了。如果可能,可以从社区“超市”存储库中购买烹饪书。例如,以下内容将检索graphite的最新版本:
source 'https://supermarket.chef.io'
cookbook "graphite"
文档显示,本食谱由以下人员管理:
为什么??从源代码存储库中使用cookbooks时,将同一版本的替代副本加载到chef服务器的风险很小
嗯?请解释
以以下场景为例:
厨师长开发人员对他的烹饪书做了一个小改动,但没有增加烹饪书的版本号1.1
你把你认为是烹饪书1.1版的东西拉下来
chef开发者对cookbook做了更实质性的更改,但仍然没有增加版本号(因为他还没有准备好发布)李>
您的chef服务器现在有一个版本1.1的副本,与版本控制系统中的最新版本1.1不匹配
要使问题复杂化,您需要显式运行“berks更新”,然后强制将菜谱重新加载到您的厨师服务器(记住Berkself冻结菜谱),以解决此问题。。。。。这可能会成为一个非常重要的问题,我已经不止一次被它烧焦了(奇怪的是,超市里没有openstack烹饪书)
在一天结束时,如果您与其他开发团队是直呼其名的,则从源代码处消费:-)如果您渴望稳定性,另一个解决方案是仅从Git标记处消费,这是加载到chef supermarket中的烹饪书所遵循的最佳实践
厨师超市提供的是厨师烹饪书的发布管理流程。Git应该跟踪cookbook中文件的所有更改。但它无法检测烹饪书何时准备发布。这是开发人员的工作,如果他的行为和遵循合理的工作流程,他将标记他的代码,然后将其推送到某种存储库中供第三方下载。超市提供的就是这种加工和储存设施。这是你的朋友,我强烈建议你使用它:-)
对你的长篇大论表示歉意!治疗:-)在可能的情况下,从社区“超市”储存库中购买食谱。例如,以下内容将检索graphite的最新版本:
source 'https://supermarket.chef.io'
cookbook "graphite"
文档显示,本食谱由以下人员管理:
为什么??从源代码存储库中使用cookbooks时,将同一版本的替代副本加载到chef服务器的风险很小
嗯?请解释
以以下场景为例:
厨师长开发人员对他的烹饪书做了一个小改动,但没有增加烹饪书的版本号1.1
你把你认为是烹饪书1.1版的东西拉下来
chef开发者对cookbook做了更实质性的更改,但仍然没有增加版本号(因为他还没有准备好发布)李>
您的chef服务器现在有一个版本1.1的副本,与版本控制系统中的最新版本1.1不匹配
要使问题复杂化,您需要显式运行“berks更新”,然后强制将菜谱重新加载到您的厨师服务器(记住Berkself冻结菜谱),以解决此问题。。。。。这可能会成为一个非常重要的问题,我已经不止一次地被它烧焦了(奇怪的是openstack烹饪书)