我们的组织尚未升级到Chef 13或14,因此我们必须将所有食谱都固定到版本12。这意味着固定到Chef-dk版本1.6.11。
我正在Vagrant中使用菜谱在centos7虚拟机中旋转并设置了版本,但是它将仅安装最新的Chefdk,这将导致计算机获取Chef14。我在metadata.rb
中添加了一个依赖项chef_version ~> 12
,因此安装失败,因为已安装Chef 14,但菜谱要求12。
我应该提到该虚拟机适用于Cookbook开发人员,因此我想在其上使用正确版本的Chef。
要安装正确的版本,我缺少什么?
谢谢。
食谱/default.rb:
node.default['chef_dk']['version'] = '1.6.11'
node.default['chef_dk']['global_shell_init'] = true
include_recipe 'chef-dk'
metadata.rb:
depends 'chef-dk'
chef_version '~> 12.0'
berksfile:
cookbook 'chef-dk'
答案 0 :(得分:0)
失败的部分是“外部” Chef,它是运行配方的东西,而不是ChefDK的安装文件(它永远不会走那么远)。我们一般不建议使用Chef安装ChefDK,因为在同一台计算机上同时安装Chef-client和ChefDK安装程序会导致混乱,因为存在重叠的命令行工具。我会使用更简单的系统(可能是bash脚本或类似的系统)来配置dev VM。我们也确实在Hub上提供了chef/chefdk
Docker映像。 (同样,我们也不建议完全在VM内进行菜谱开发,但我想那艘船已经为您服务了)