Chef 配置资源 - 运行 特定版本的说明书
Chef provisioning resource - Run specific version of 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
的特定版本(比如 0.0.5)针对此 machine
资源?
好像只加了
depends 'my_custom_cookbook', '0.0.5'
添加到元数据文件不起作用。它总是选择最新版本
配置说明书与其创建的节点没有直接关系,因此添加依赖项无济于事。可以通过三种方式控制使用哪个版本的食谱:
- 使用新的策略文件系统。我不认为
cheffish
/chef-provisioning
对设置策略 name/group 有直接支持,但你可以使用 raw_json
属性 可能。
- 使用环境。您可以通过
machine
资源上的 chef_environment
属性 进行设置。查看 Chef 文档以获取有关使用环境的更多详细信息。
- 在 运行 列表中设置它,
recipe 'my_custom_cookbook::super_secret_recipe@0.0.5'
。这是 Chef 的一项很少使用的功能,因此可能并非所有 places/tools. 都支持
我有一个基本的机器资源:
machine 'admin' do
recipe 'my_custom_cookbook::super_secret_recipe'
ohai_hints 'ec2' => '{}'
action :converge
converge true
end
我如何 运行 my_custom_cookbook::super_secret_recipe
的特定版本(比如 0.0.5)针对此 machine
资源?
好像只加了
depends 'my_custom_cookbook', '0.0.5'
添加到元数据文件不起作用。它总是选择最新版本
配置说明书与其创建的节点没有直接关系,因此添加依赖项无济于事。可以通过三种方式控制使用哪个版本的食谱:
- 使用新的策略文件系统。我不认为
cheffish
/chef-provisioning
对设置策略 name/group 有直接支持,但你可以使用raw_json
属性 可能。 - 使用环境。您可以通过
machine
资源上的chef_environment
属性 进行设置。查看 Chef 文档以获取有关使用环境的更多详细信息。 - 在 运行 列表中设置它,
recipe 'my_custom_cookbook::super_secret_recipe@0.0.5'
。这是 Chef 的一项很少使用的功能,因此可能并非所有 places/tools. 都支持