我有一个基本的机器资源:
machine 'admin' do
recipe 'my_custom_cookbook::super_secret_recipe'
ohai_hints 'ec2' => '{}'
action :converge
converge true
end
如何针对此machine
资源运行特定版本(假设 0.0.5)的my_custom_cookbook::super_secret_recipe
?
似乎只是添加
depends 'my_custom_cookbook', '0.0.5'
到元数据文件不起作用。它总是选择最新版本
预配说明书与其创建的节点没有直接关系,因此添加依赖无济于事的原因。有三种方法可以控制使用哪个版本的说明书:
- 使用新的策略文件系统。我认为
cheffish
/chef-provisioning
还没有直接支持设置策略名称/组,但您可能可以使用raw_json
属性。 - 使用环境。可以通过
machine
资源上的chef_environment
属性进行此设置。查看 Chef 文档,了解有关使用环境的更多详细信息。 - 在运行列表中设置它,
recipe 'my_custom_cookbook::super_secret_recipe@0.0.5'
.这是 Chef 中很少使用的功能,因此可能并非在所有位置/工具中都支持此功能。