2014-12-14 3 views
2

Я использую OpsWorks для развертывания моего пользовательского приложения node.js. Я не эксперт по шеф-повару и думал, что это будет легкий процесс, но я продолжаю бить коряги. Эта самая последняя проблема действительно заставляет меня вернуться.Проблема установки hiredis на AWS Linux с использованием OpsWorks

В основном я использую пакет под названием «Kue», который зависит от пакета Node под названием Hiredis. Hiredis реализован на уровне C (насколько я понимаю) и использует некоторые инструменты компиляции уровня Python.

Похоже, что сценарий шеф-повара по умолчанию, который использует OpsWorks, продолжает терпеть неудачу в точке, где установлен Kue, затем Hiredis. Ниже приведен журнал, когда экземпляр пытается развернуть приложение: http://codepad.org/RXxKXqBq

После того, как некоторые пользователи указывают на проблему с версией Python, которую использует AWS Linux. Обратите внимание, что я использую рецепты повара для приложений Node.js по умолчанию, которые можно найти здесь: https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.10/opsworks_nodejs

ответ

1

Я не знаком с пакетами узлов и версией, но из журнала, с которым вы поделились, кажется, что это проблема в одном из узла пакетов, которые вы используете называемые amdefine:

npm ERR! Failed to parse json 
npm ERR! Unexpected end of input 
npm ERR! File: /home/deploy/.npm/amdefine/0.1.0/package/package.json 
npm ERR! Failed to parse package.json data. 
npm ERR! package.json must be actual JSON, not just JavaScript. 
npm ERR! 
npm ERR! This is not a bug in npm. 
npm ERR! Tell the package author to fix their package.json file. JSON.parse 
npm ERR! System Linux 3.14.26-24.46.amzn1.x86_64 
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--production" 
npm ERR! cwd /srv/www/my_api/releases/20141214002817 
npm ERR! node -v v0.10.29 
npm ERR! npm -v 1.4.14 
npm ERR! file /home/deploy/.npm/amdefine/0.1.0/package/package.json 

Это может быть исправлено npm cache clean или путем изменения версии nodejs как you found too возможно.

Для добавления команды npm cache clean вы должны создать новый рецепт или добавить его в свой wrapper cookbook. Единственное, что должно быть удовлетворено, это то, что эта команда должна быть после установки узла и перед установкой пакетов.

Если вы хотите изменить версию, вы можете chceck default nodejs recepie, вы можете видеть, что требуемая версия установленного nodejs определена в attributes file для этой кулинарной книги.

Таким образом, вы можете переопределить значение по умолчанию с помощью атрибута default[:opsworks_nodejs][:version].

+0

Я собираюсь попробовать добавить кэш npm в nodejs_configuratiobs.rb. В команде ShellOut я добавил ее до установки пакета npm: Chef :: Log.info (OpsWorks :: ShellOut.shellout («npm cache clean && sudo su - # {app_config [: user]} -c 'cd # {app_root_path} && npm # {npm_install_options} '2> & 1 ")) - Надеюсь, это будет сложно. Тестирование и вернется к вам, если это сработает =) спасибо. – ddibiase

+0

Отлично, это сделал трюк. Теперь среда настроена, и мне нужно сосредоточиться на ее настройке и обнаружении того, что приложение узла успешно развернуто. Спасибо расташеп! – ddibiase

+0

Отличные новости! без проблем :) – rastasheep