2016-07-20 4 views
0

Я написал сценарий для развертывания кода в экземпляр EC2 с использованием AWS Code Deploy, мои файлы копируются в пункт назначения, затем мои крючки запускаются, удаляются команды, команды CD работают нормально, но когда следующая команда:/usr/bin/env: node: Permission denied for nodejs с использованием AWS Code Deploy

/usr/bin/node/bin/forever start /home/ubuntu/codebase/app/bin/www 

Я получаю следующее сообщение об ошибке и развертывания не удается:

/usr/bin/env: node: Permission denied 

Я установки версии узла v4.4.0, загрузив с помощью wget, а затем добавление следующих путей к bashrc:

export NODEJS_HOME=/usr/share/nodejs/bin 
export PATH=$PATH:$NODEJS_HOME 

Я также добавил ссылку:

sudo ln -s /usr/share/nodejs/ 

Мои appspec.yml крюки:

ApplicationStart: 
    - location: scripts/start_server.sh 
     timeout: 30 
     runas: ubuntu 

Вопросы:

  1. Почему я получаю «узел: доступ запрещен ' ошибка?
  2. Во-вторых, для чего мне нужно дать полный путь для «npm, node, forever»?

Если я перехожу в соответствующий каталог:/opt/codedeploy-agent/deployment-root/..... и затем запускаю мой скрипт вручную как пользователь Ubuntu, он отлично работает. Хотя он работает как sudo, дает ту же ошибку на консоли

+0

Что происходит, когда вы меняете Runas: корень? Также каковы разрешения на файл start_server.sh? – error2007s

+0

такой же ошибка. Доступ запрещен. – user2379271

+0

Если я перехожу в соответствующий каталог:/opt/codedeploy-agent/deployment-root/..... и затем запускаю мой скрипт вручную как пользователь Ubuntu, он отлично работает. Хотя он работает как sudo, дает ту же ошибку на консоли. – user2379271

ответ

0

Команда службы вырезает большинство переменных окружения. Таким образом, переменные NODEJS_HOME не будут доступны для start_server.sh. Вы можете попробовать и настроить переменные среды в файле/etc/profile. Агент сообщает, что при запуске.

Надеюсь, что это решит проблему.

Спасибо, Амартья Датта Гупта

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

  • Нет связанных вопросов^_^