如何解决刀和伯克希尔的区别?
刀和berkshelf均用于上载食谱。 berkshelf正在处理“第三方依赖项”以及ferk berkfile或Metadata.rb。那是唯一的区别还是更多?
解决方法
从广义上讲,Berkshelf是厨师食谱的一种“包装管理器”。
有点像yum
是rpm
,还是apt-get
是dpkg
。
正如您所指出的,Berkshelf为给定的Chef食谱提供了依赖管理。它不仅可以提取外部依赖关系,还可以从给定代码(Git / Bitbucket)存储库中获取依赖的食谱(和版本)。随着更大的Chef部署,管理多个依赖项总是很复杂。
有时候,依赖关系是显而易见的。只是为了说明这一点,如果我有一本食谱my_rabbitmq_server
,其中metadata.rb
为:
version '0.1.0'
depends 'rabbitmq','>= 5.7.0'
我可能会以为只有1种依赖关系,我可以轻松地用knife
来解决它。
但是...
rabbitmq
食谱可能取决于其他食谱,而其他食谱可能取决于其他食谱。这种嵌套的依赖关系可能导致必须提取许多食谱(有时> 10)。这可以用小刀完成,但是很费时间,而且容易出错。
另一个功能是,使用Berkshelf上传的食谱针对该版本被冻结(默认行为)。它将防止再次上传具有相同版本的食谱。
如果我们参考上面的示例,进行一些更改后,我将无法使用Berkshelf上传my_rabbitmq_server
版本0.1.0
。因此,对于菜谱代码进行任何更改,都会使版本颠簸变得必要。
如果您还没有经历过official documentation,我强烈建议您这样做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。