Сценарий OPENSHIFT DIY Tomcat картридж setenv.sh не собирает переменные OPENSHIFT

Шаги:

  • Выполните шаги из главы «Изучение Openshift» Шипли, посвященной DIY.
  • Создал самодельный картридж
  • ssh'd в
  • отправлено в app-root/data
  • wget ..... кот 8
  • размолоть
  • настроить конф/сервер
  • настроить пользователей conf/tomcat
  • запустился - работал - мог получить доступ к домашней странице Tomcat

Я хочу заменить жестко заданные значения адреса и порта в файле conf/server.xml переменными env $OPENSHIFT_DIY_IP и $OPENSHIFT_DIY_PORT.

Когда я просто вставил эти вары напрямую - это не сработало.

Я дошел до того, что узнал, что причина в том, что переменные $OPENSHIFT_* не передаются в JVM должным образом, и это нормально.

Чтобы обойти это - я подумал, что могу просто добавить несколько разделов в файл bin/setenv.sh, чтобы захватить их в свои собственные переменные, а затем использовать мои переменные в файле server.xml, например,

MY_IP=$OPENSHIFT_DIY_IP MY_PORT=$OPENSHIFT_DIY_PORT

Моя текущая проблема заключается в том, что приведенные выше операторы не работают внутри setenv.sh

Я могу выполнять эти команды из сеанса терминала командной строки, и переменные $MY_* сохраняют значения, но когда они помещаются внутрь setenv и запускается ./setenv.sh - vals выводятся в виде пустых строк.

Конструктивные/полезные мысли?

Тиа


person BobZ_Annapolis    schedule 10.02.2015    source источник


Ответы (1)


Когда вы запускаете setenv напрямую, переменные среды MY_* будут доступны только внутри сценария setenv.

Если вы хотите, чтобы переменные были доступны вне скрипта setenv, вам нужно source setenv или . setenv.

Если вы хотите, чтобы эти переменные были доступны для подпроцессов, созданных из вашей оболочки, вам необходимо export переменные среды.

person MartinB    schedule 10.02.2015
comment
Привет Мартин, Спасибо за дополнительную информацию. Я пытаюсь реализовать возможность перемещения этого картриджа на разные узлы [если это необходимо] без необходимости ручного редактирования файла ../conf/server.xml. Я должен иметь возможность использовать подстановку переменных среды для выполнения этого.... это работает не в среде ОС.... у меня просто небольшая проблема с правильным синтаксисом/последовательностью выполнения этого, когда в механизм ОС. Спасибо еще раз. - person BobZ_Annapolis; 10.02.2015
comment
Если вы хотите узнать, как они делают подстановку переменных в OpenShift, взгляните на следующий скрипт: github.com/openshift/origin-server/blob/master/cartridges/ строки 58–87. - person MartinB; 12.02.2015