在厨师 - 客户端运行期间无法替换属性

时间:2017-11-13 07:42:34

标签: chef

我正在尝试覆盖我的cookbook中属性文件中设置的默认属性,并使用在我的厨师服务器环境中设置的属性。

这是我的属性文件:

default['app']                  = 'tomcat_app' 
default['environment']          = 'env'
default['instance']             = 'tier'
default['application_name']     = "#{default['environment']}/#{default['app']}"
default['environment_instance'] = "#{default['environment']}/#{default['app']}/#{default['instance']}"
default['app_owner']            = 'app_user'
default['app_owner_group']      = 'app_group'

我的环境配置如下:

 {
    "app": {
        "tomcat_app": "NGS"
    },
    "environment": {
        "env": "/Test/Apps"
    },
    "instance": {
        "tier": "tst"
    },
    "app_owner": {
        "app_user": "ngsint"
    },
    "app_owner_group": {
        "app_group": "batchdev"
    },
    "override_attributes": {}
}

但是在Chef-client运行期间,这些值不会被替换。我已将其设置为环境的默认属性。

1 个答案:

答案 0 :(得分:1)

属性应该在default_attributes Hash / Object中,它应该如下所示:

  "default_attributes": {
    "app": {
        "tomcat_app": "NGS"
    },
    "environment": {
        "env": "/Test/Apps"
    },
    "instance": {
        "tier": "tst"
    },
    "app_owner": {
        "app_user": "ngsint"
    },
    "app_owner_group": {
        "app_group": "batchdev"
    }
  }

As explained in the documentation.