Chef infra 刀和刀有什么区别?

Chef infra 刀和刀有什么区别?,chef-infra,knife,berkshelf,Chef Infra,Knife,Berkshelf,刀和架子都是用来上传食谱的。berkshelf负责处理“第三方依赖关系”以及feom berkfile或Metadata.rb。这是唯一的区别还是有更多的区别?从松散的意义上说,Berkself是厨师烹饪书的“包装管理器” 这有点像yum对rpm的作用,或者apt-get对dpkg的作用 正如您所指出的,Berkself为给定的厨师烹饪书提供了依赖关系管理。它不仅可以从给定的代码(Git/Bitbucket)存储库中提取外部依赖项,还可以提取相关的烹饪书(和版本)。对于较大的Chef部署,管理多

刀和架子都是用来上传食谱的。berkshelf负责处理“第三方依赖关系”以及feom berkfile或Metadata.rb。这是唯一的区别还是有更多的区别?

从松散的意义上说,Berkself是厨师烹饪书的“包装管理器”

这有点像
yum
rpm
的作用,或者
apt-get
dpkg
的作用

正如您所指出的,Berkself为给定的厨师烹饪书提供了依赖关系管理。它不仅可以从给定的代码(Git/Bitbucket)存储库中提取外部依赖项,还可以提取相关的烹饪书(和版本)。对于较大的Chef部署,管理多个依赖项总是很复杂

有时,依赖性是显而易见的。为了说明这一点,如果我有一本食谱
my_rabbitmq_server
,其中
metadata.rb
如下所示:

版本“0.1.0”
依赖于'rabbitmq','>=5.7.0'
我可能会认为只有一个依赖项,我可以用
knife
轻松解决它

然而

rabbitmq
食谱可能依赖于其他食谱,而其他食谱可能依赖于其他一些食谱。这种嵌套的依赖关系可能导致必须提取许多烹饪书(有时大于10)。这可以用刀子来完成,但它既耗时又容易出错

另一个特性是,随Berkshelf上传的烹饪书在该版本中被冻结(默认行为)。这将防止再次上传具有相同版本的烹饪书

如果我们参考上面的示例,在进行一些更改后,我将无法使用Berkshell上载
my_rabbitmq_server
version
0.1.0
。因此,它使得对cookbook代码的任何更改都需要版本凹凸

如果你还没有通过考试,我强烈建议你这样做