У меня возникли проблемы с получением моего пользовательского рецепта 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
Так что я действительно в растерянности почему он этого не делает.
Похоже, что эта разводная кулинарная книга не была полностью завершена. Если есть лучшая поваренная книга, доступная для кого-то, я бы подумал об изменении.
Спасибо.
Вы должны иметь возможность устанавливать переменные envvv в конфигурацию приложения. Затем эти переменные загружаются через '<% = @deploy [: deploy_to]%>/shared/app.env' Нет необходимости напрямую устанавливать вашу переменную env в этом скрипте. – Yousef
Спасибо @Yousef. Я узнал, что вы можете переопределить его, изменив свой пользовательский JSON на {deploy: {app_name: {environment_variables: {// помещаем их здесь}}}, однако он не работает. Я даже не могу найти образец Custom JSON, который переопределяет его, и документация так не впечатляет. Это заставляет меня ненавидеть OpsWorks. – ddibiase
Перейдите в свой стек -> нажмите «Приложения» -> Перейдите в свое приложение и нажмите «Изменить», а затем вы увидите раздел «Переменные среды» с вводами/значениями. Попробуйте это и дайте мне знать, иначе я добавлю скриншоты. Как только вы его повесите, вы действительно оцените opsworks. – Yousef