Это - содержание моего сценария оболочки:
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 запускается внутри виртуальной виртуальной машины.
Для установки переменных окружения используйте опцию binary_env
, как описано в Vagrant documentation for Chef provisioning.