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'

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

配置说明书与其创建的节点没有直接关系,因此添加依赖项无济于事。可以通过三种方式控制使用哪个版本的食谱:

  1. 使用新的策略文件系统。我不认为 cheffish/chef-provisioning 对设置策略 name/group 有直接支持,但你可以使用 raw_json 属性 可能。
  2. 使用环境。您可以通过 machine 资源上的 chef_environment 属性 进行设置。查看 Chef 文档以获取有关使用环境的更多详细信息。
  3. 在 运行 列表中设置它,recipe 'my_custom_cookbook::super_secret_recipe@0.0.5'。这是 Chef 的一项很少使用的功能,因此可能并非所有 places/tools.
  4. 都支持