Как установить переменную окружения с помощью Chef?
Есть аналогичный вопрос к этому, но не могу заставить его работать: Я хочу просто установить переменную env, а затем использовать ее:
execute "start zookeeper" do
cwd "/opt/zookeeper-3.4.5/bin"
command "./zkServer.sh start"
environment "JVMFLAGS" => "-Xmx#{heap_jvm} -Xms#{heap_jvm}"
user "root"
action :run
end
Я также пробовал использовать bash для "export JVMFLAGS='-blabla'"
, но все равно он запускает sh с none, установленным в переменную. Есть ли какая-то проблема, мешающая моему скрипту sh проверять переменную?
Я мог бы использовать SH как шаблон и заменить вхождение JVMFLAGS... Но я хочу проверить, есть ли лучшее решение..
1 ответ:
Вы пробовали установить переменную окружения через Ruby непосредственно перед блокомexecute ? Шеф-повар фактически рекомендует использовать ENV (см. Примечание на этой странице).
ENV['JVMFLAGS'] = "-Xmx#{heap_jvm} -Xms#{heap_jvm}"
Еще одна возможность-добавить JVMFLAGS в саму команду.
execute "start zookeeper" do [...] command "JVMFLAGS=-Xmx#{heap_jvm} -Xms#{heap_jvm} ./zkServer.sh start" [...] end