У нас есть рецепт, которые используют атрибут узла:Chef - переопределить атрибут узла
python_pip 'request_proxy' do
virtualenv '/opt/proxy/.env'
version node.default['request-proxy']['version']
Chef::Log.info('Auth request proxy #{version}')
action :install
end
Атрибут устанавливается на уровне узла и все в порядке, но для целей тестирования я хочу изменить это в моем местном (кухня/бродячий). В качестве первого шага я добавляю атрибут к моему .kitchen.yml:
suites:
- name: default
run_list:
- recipe[proxy_install]
attributes: {request-proxy: {'version': '1.0.8'}}
К сожалению, узел все еще использует версию по умолчанию. Все работает нормально, без ошибок и полностью игнорирует мои атрибуты.
Позже я попытался добавить это в файл параметров (chef-client -j params.json
) на производственный узел, результат был тот же.
Что я пропустил? Что я делаю не так?
P.S. Chef::Log.info('Auth request proxy #{version}')
также полностью игнорируется ??
'Chef :: Log.info' не будет анализироваться внутри ресурса, я даже удивлен, что это не вызывает ошибку как неправильный атрибут. Установите его из ресурса 'python_pip', и он должен работать, если вы заменили одинарные кавычки двойной кавычкой, чтобы интерполяция и' # {version} 'были заменены на ее значение. (Комментируйте, а не ответьте, поскольку я не знаю о проблеме kitchen.yml.) – Tensibai