Chef,覆盖不适用于配方的属性

How*_*Lee 3 attributes overriding role chef-infra chef-recipe

这是我下载的食谱:https: //github.com/edelight/chef-mongodb

我安装了Chef服务器,Chef工作站,并准备好一个testnode来引导.

我创建的角色:

$ knife role create mongodb_standalone_testproj
Run Code Online (Sandbox Code Playgroud)

JSON格式:

{
  "name": "mongodb_standalone_testproj",
  "description": "Deploy MongoDB standalone with override attributes",
  "json_class": "Chef::Role",
  "default_attributes": {
  },
  "override_attributes": {
    "mongodb::default": {
      "port": "27060",
      "dbpath": "/data/"
    }
  },
  "chef_type": "role",
  "run_list": [
    "recipe[mongodb::default]"
  ],
  "env_run_lists": {
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我使用此角色引导testnode时:

knife bootstrap testnode --sudo -x <omit> -P <omit> -N testnode -r 'role[mongodb_standalone_testproj]'
Run Code Online (Sandbox Code Playgroud)

登录:http://pastebin.com/DWxY3vNV

问题是,MongoDB安装并在testnode上运行但是覆盖属性(port和dbpath)没有被应用,任何线索?

set*_*rgo 57

这些属性不正确:

"override_attributes": {
  "mongodb::default": {
    "port": "27060",
    "dbpath": "/data/"
  }
},
Run Code Online (Sandbox Code Playgroud)

我愿意打赌你想要:

"override_attributes": {
  "mongodb": {
    "config": {
      "port": "27060",
      "dbpath": "/data/"
    }
  }
},
Run Code Online (Sandbox Code Playgroud)