Я начинаю использовать Chef для автоматизации настройки машин сборки для фермы сборки. Некоторые из наших зависимостей здесь зависят от машины (например, лицензионный ключ для проприетарного компилятора), а другие атрибуты рецепта выиграют, если будут настраиваться (например, где найти установщик, который не является общедоступным).
Сейчас все эти настройки жестко запрограммированы в attribute.rb, например:
default[:mkl][:serial] = "XXXX"
и я использовал default [: mkl] [: serial] внутри самого рецепта.
Я хотел бы получить решение, которое не требует, если возможно, сервера шеф-повара (я использую chef-solo, и накладные расходы сервера на данном этапе не оправданы).
Мне удалось это сделать следующим образом:
сначала настройте его в файле solo.json как таковой:
{
"mkl": {
"license": "XXX",
},
"run_list": ["recipe[mkl::default]"
}
Моя ошибка заключалась в том, чтобы поместить раздел «mkl» в override_attributes.