Назад | Перейти на главную страницу

Почему рецепт шеф-повара не может считывать значения из переменных среды bash?

Это содержимое моего сценария оболочки:

export TARGET_ROLE=play
vagrant up

Я использую скрипт для экспорта переменных среды, чтобы установить некоторые переменные в моей поварской книге.

role = ENV['TARGET_ROLE']
Chef::Log.info("Using role #{role}")
node.override[:mainapp][:target_role] = role

seq = ENV['SEQ']
Chef::Log.info("Using seq #{seq}")
node.override[:mainapp][:server_seq] = seq 

Вот что я вижу в своем журнале:

==> default: [2015-09-14T07:22:35+00:00] DEBUG: Found recipe mainapp_common_env in cookbook mainapp
==> default: [2015-09-14T07:22:35+00:00] INFO: Using role 
==> default: [2015-09-14T07:22:35+00:00] INFO: Using seq 

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

Вы устанавливаете переменную среды на хосте. - Но Chef работает внутри вашей виртуальной машины Virtualbox.

Чтобы установить для него переменные среды, используйте binary_env вариант, как описано в Бродячая документация для обеспечения Chef.