使用Chef的include_recipe命令是否可以追加Cookbook版本?

3
我知道我们可以在运行 cookbook 时包含版本,例如:

我知道我们可以像这样运行 cookbook 时包含版本:

    chef-client -o "recipe[mycookbook@0.1.1]"

在执行include_recipe时如何追加版本号?
    include_recipe "apache2::mod_ssl"@version?
1个回答

6

使用Chef Recipe DSL中的include_recipe是不可能实现的。您可以通过以下方式提供特定版本:

  • 在角色或节点的运行列表中,例如"recipe[mycookbook@0.1.1]"
  • 环境中锁定Cookbook版本,例如:

    cookbook_versions({ "nginx" => "<= 1.1.0", "apt" => "= 0.0.1" })

  • 在Cookbook的metadata.rb文件中,例如depends 'apt', '1.2.3'

既然您想从Cookbook内部锁定版本,为什么不在metadata.rb中声明它呢?这将直接影响您正在使用的include_recipe语句,强制该include使用在metadata中声明的版本。

在您的示例中,应该是这样的:

depends 'mycookbook, '0.1.1'

或者以apache为例,在您的metadata.rb文件中:

depends 'apache2', 'version'

然后在您的配方中:

include_recipe "apache2::mod_ssl"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接