Проблема с установкой Hiredis на AWS Linux с помощью OpsWorks

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

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

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

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


person ddibiase    schedule 14.12.2014    source источник


Ответы (1)


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

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, как вы тоже обнаружили.

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

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

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

person rastasheep    schedule 15.12.2014
comment
Я собираюсь попробовать добавить очистку кеша 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)) -- Надеюсь, это поможет. Тестирую и свяжусь с вами, если это сработало =) спасибо. - person ddibiase; 15.12.2014
comment
Отлично, это помогло. Среда настроена, теперь мне нужно сосредоточиться на ее настройке и обнаружении успешного развертывания приложения узла. Спасибо, растаовцы! - person ddibiase; 15.12.2014
comment
Отличные новости! нет проблем :) - person rastasheep; 15.12.2014