Роль шеф-повара и среда default_attributes недоступны

Скажем, у меня есть следующая роль шеф-повара:

name "test"
description "role for test"
run_list %w(recipe[cookbook_name])
default_attributes(
  :cookbook_name => {
    :a => 1
  }
)

И соответствующая среда:

name "test environment"
description "environment for test"
default_attributes(
  :cookbook_name => {
    :b => 2
  }
)

И затем в атрибутах моей поваренной книги у меня есть что-то вроде:

parent = default[:cookbook_name]
parent[:c] = 3

документация по атрибутам убедила меня, что они будут доступны в контекст рецепта из node[:cookbook_name][:a] или node[:cookbook_name][:b]. Однако, когда я пытаюсь получить доступ к ним в моей настоящей поваренной книге, я получаю nil. В чем дело? Я неправильно понимаю роль этих атрибутов? Я думаю, что стоит отметить, что даже если я устанавливаю значения по умолчанию для этих атрибутов в файле атрибутов, я получаю тот же результат, что заставляет меня думать, что я неправильно обращаюсь к атрибутам.

Что я делаю не так?


person Brian Hicks    schedule 13.06.2012    source источник


Ответы (1)


Вот как все должно работать. Внутри рецепта «cookbook_name» вы должны иметь доступ к хешу :cookbook_name с двумя элементами :a и :b.

Настроили ли вы список выполнения и среду на узле, чтобы включить перечисленные роль и среду? Запуск knife node show должен показать это.

person Tim Potter    schedule 14.06.2012
comment
Да, но оказалось, что среду не удалось загрузить. Спасибо за хороший ответ! - person Brian Hicks; 15.06.2012