Шеф-повар: Почему я не могу получить доступ к атрибутам, определенным в роли?

Я использую Chef 11.8.2, с сервером шеф-повара с открытым исходным кодом. У меня есть следующие утверждения в моей роли и файле поваренной книги:

роли/webserver.rb

name "webserver"
description "Web Servers"
run_list %w{recipe[my_cookbook]}
default_attributes({
     "company" => "OPSCODE"
})

поваренные книги/my_cookbook/recipes/default.rb

puts node.default.inspect

Он печатает только "{}". И я проверил, что узлу правильно назначена роль веб-сервера:

C:\chef\chef-repo>knife node show chef-client-1
Node Name:   chef-client-1
Environment: dev
FQDN:        chef-client-1.puncha.com
IP:          192.168.1.31
Run List:    role[webserver]
Roles:       webserver
Recipes:     my_cookbook
Platform:    ubuntu 12.10
Tags:

person PunCha    schedule 02.02.2014    source источник
comment
вы сходились узел хотя бы один раз?   -  person John Stadt    schedule 02.02.2014
comment
да сойтись (запустить шеф-клиент) узел хотя бы один раз и добавить параметр -l к команде ножа выше, чтобы получить все атрибуты узла.   -  person Mark O'Connor    schedule 03.02.2014


Ответы (1)


Вы хотите проверить «скомпилированные» атрибуты, а не атрибуты по умолчанию:

puts node.inspect
person sethvargo    schedule 02.02.2014
comment
Спасибо. Теперь я вижу, чтобы использовать атрибуты в рецепте, я должен использовать скомпилированные свойства объекта node, а не node.default. - person PunCha; 03.02.2014