2015-03-13 3 views
0

У меня возникли проблемы с получением моего пользовательского рецепта OpsWorks для запуска моего приложения-узла. Я только начинаю изучать основы шеф-повара, поэтому мне может не хватать чего-то довольно очевидного.Запуск приложения Node.js на OpsWorks

Чтобы начать меня, я раздвинул копию AWS nodejs cookbook и внес очень незначительные изменения. Я также был вынужден скопировать сценарий развертывания узла here.

Теперь мои слои полностью настроены, и я могу запускать узел вручную через SSH, однако кажется, что при развертывании он не запускается скриптом Ruby.

Я предполагаю линию старта программы (которая является единственным местом в поваренной книге, где я могу увидеть узел быть запущен) не получает пробег:

check host node_web_app_<%= @application_name %> with address 127.0.0.1 
    start program = "/bin/bash -c 'cd <%= @deploy[:deploy_to] %>/current; source <%= @deploy[:deploy_to] %>/shared/app.env; /usr/bin/env PORT=<%= @deploy[:nodejs][:port] %> NODE_PATH=<%= @deploy[:deploy_to] %>/current/node_modules:<%= @deploy[:deploy_to] %>/current /usr/local/bin/node <%= @monitored_script %>' --NODE_ENV=prod" 
    stop program = "/usr/bin/pkill -f 'node <%= @monitored_script %>'" 
    <% if @deploy[:ssl_support] -%> 
    if failed port <%= @deploy[:nodejs][:port] %> type TCPSSL protocol HTTP 
    <% else -%> 
    if failed port <%= @deploy[:nodejs][:port] %> protocol HTTP 
    <% end -%> 
    request/
    with timeout 10 seconds 
    then restart 

Так что я действительно в растерянности почему он этого не делает.

Похоже, что эта разводная кулинарная книга не была полностью завершена. Если есть лучшая поваренная книга, доступная для кого-то, я бы подумал об изменении.

Спасибо.

+0

Вы должны иметь возможность устанавливать переменные envvv в конфигурацию приложения. Затем эти переменные загружаются через '<% = @deploy [: deploy_to]%>/shared/app.env' Нет необходимости напрямую устанавливать вашу переменную env в этом скрипте. – Yousef

+0

Спасибо @Yousef. Я узнал, что вы можете переопределить его, изменив свой пользовательский JSON на {deploy: {app_name: {environment_variables: {// помещаем их здесь}}}, однако он не работает. Я даже не могу найти образец Custom JSON, который переопределяет его, и документация так не впечатляет. Это заставляет меня ненавидеть OpsWorks. – ddibiase

+0

Перейдите в свой стек -> нажмите «Приложения» -> Перейдите в свое приложение и нажмите «Изменить», а затем вы увидите раздел «Переменные среды» с вводами/значениями. Попробуйте это и дайте мне знать, иначе я добавлю скриншоты. Как только вы его повесите, вы действительно оцените opsworks. – Yousef

ответ

1

Используя слой AWS opsworks nodejs, вы должны иметь возможность устанавливать переменные среды во время регистрации приложения. Вы должны увидеть раздел, как это:

в настройках приложения:

enter image description here

Где вы можете установить все переменные, которые будут включены в развертывание.

Смежные вопросы