/ usr / bin / env: node: в доступе отказано для nodejs с использованием AWS Code Deploy

Я написал сценарий для развертывания кода в экземпляре EC2 с помощью AWS Code Deploy, мои файлы копируются в место назначения, затем запускаются мои хуки, удаляются команды, команды cd работают нормально, но когда выполняется следующая команда:

/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, выдает ту же ошибку на консоли


person user2379271    schedule 20.07.2016    source источник
comment
Что происходит, когда вы меняете runas: root? И какие разрешения у файла start_server.sh?   -  person error2007s    schedule 20.07.2016
comment
та же ошибка. Доступ запрещен.   -  person user2379271    schedule 20.07.2016
comment
Если я перейду в соответствующий каталог: / opt / codedeploy-agent / deployment-root / ....., а затем запустил свой скрипт вручную как пользователь Ubuntu, он будет работать нормально. Несмотря на то, что он запускается как sudo, выдает ту же ошибку на консоли.   -  person user2379271    schedule 20.07.2016


Ответы (1)


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

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

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

person Amartya Datta Gupta    schedule 09.08.2016