4

问题

我正在使用带有厨师独奏的流浪汉。

  1. 如何覆盖“默认”属性?
  2. 如果我要创建厨师食谱,我应该什么时候使用“默认”属性?

描述

openldap['rootpw']我在openldap的属性中看到了

我想覆盖openldap['rootpw']属性。

我试图覆盖配置,如下

# Vagrantfile
Vagrant::Config.run do |config|
  config.vm.provision :chef_solo do |chef|

    #....

    chef.json = {
      'rootpw' => 'xxxx....',
      'openldap' => {
        'rootpw' => 'xxxx....'
      }
    }
  end
end

但是,属性没有被覆盖。

我认为,如果属性是default['openldap']['rootpw'].

如何覆盖“默认”属性?

4

2 回答 2

1

使用覆盖属性。您可以将它们设置在不同的地方(食谱、角色、环境),也许您能找到适合您的。

于 2013-01-21T09:35:39.723 回答
1

您不能像默认值一样轻松地覆盖“非默认”属性,因为它在链的下游进行评估。基本上,顺序是默认、force_default、正常、覆盖、force_override、自动的连续统一体。如果您想覆盖某些内容,只需在列表中往下走。最佳做法是使用默认值并覆盖它们。

http://docs.opscode.com/essentials_cookbook_attribute_files.html#attribute-precedence

于 2013-05-14T17:32:23.010 回答