Chef配置资源 - 运行特定版本的cookbook

时间:2016-02-20 05:24:18

标签: ruby chef provisioning cookbook

我有一个基本的机器资源:

machine 'admin' do
  recipe 'my_custom_cookbook::super_secret_recipe'
  ohai_hints 'ec2' => '{}'
  action :converge
  converge true
end

如何针对此my_custom_cookbook::super_secret_recipe资源运行machine的特定版本(假设为0.0.5)?

似乎只是添加

depends 'my_custom_cookbook', '0.0.5'

到元数据文件不起作用。它总是选择最新版本

1 个答案:

答案 0 :(得分:1)

配置食谱与它创建的节点没有直接关系,所以这就是为什么添加依赖也无济于事。有三种方法可以控制使用的菜谱版本:

  1. 使用新的Policyfile系统。我认为cheffish / chef-provisioning不直接支持设置策略名称/组,但您可以使用raw_json属性。
  2. 使用环境。您可以通过chef_environment资源上的machine属性进行设置。有关使用环境的更多详细信息,请查看Chef文档。
  3. 将其设置在运行列表recipe 'my_custom_cookbook::super_secret_recipe@0.0.5'中。这是Chef很少使用的功能,因此可能并不支持所有场所/工具。