- PVSM.RU - https://www.pvsm.ru -
Деплоймент приложения всегда является критической точкой цикла разработки… и никогда не бывает лёгким. Если Вы пользуетесь услугами хостинговых провайдеров, то вероятнее всего Вам уже предоставили достаточный всяческих удобств сервис. В данной статье я расскажу про развёртывание приложений без создания сложной хостинговой инфраструктуры…
Для начала определимся с технологией. Использовать будем, естественно, только то, что предоставила нам платформа разработки — node.js. На сервере будет работать некий web-сервис, который будет принимать запросы и заниматься всей «грязной» работой. На клиенте — command-line tool. Ну как без него?
Итак, сервис устанавливается следующим образом:
npm install -g node-deploy-server
Клиент, не сложнее…
npm install -g node-deploy-client
Софт стоит, теперь пора рассказать как его конфигурировать, чтобы подружить вместе сервис с клиентом.
Файл конфигурации носит имя nodehosting.json и находится в папке /etc для Linux систем и в корне модуля для Windows.
Полный текст конфигурационного файла
{
"port" : 15478,
"username" : "admin",
"password" : "admin",
"applications" : {
"application1" : {
"path" : "../applications",
"foreverConfig" : {
"cwd" : "../applications/application1"
},
"plugins" : [
"unpack",
"installDependencies",
"startProcess"
]
}
}
}
Настройка приложения:
Отдельно хочу сказать про установку зависимостей. Она выполняется с помощью команды npm install в корневой папке приложения. Для примера это ../applications/application1. Таким образом, если необходимо при развёртывании выполнить дополнительные действия их достаточно прописать в поле scripts.install в package.json
В корневую папку приложения (рядом с package.json) необходимо положить файл с именем .deploy и следующего содержания:
{
"url" : {
"hostname" : "localhost",
"port" : "15478"
},
"username" : "admin",
"password" : "admin"
}
В отличии от сервера здесь не густо — самый минимум, чтобы связаться с сервером.
Запускаем сервер на Linux
service nodehosting start
Не забудьте выполнить команду chkconfig nodehosting on если хотите чтобы сервис запускался при запуске ОС.
Запускаем сервер на Windows
sc start nodehosting.exe
Для деплоя приложения необходимо перейти в его корневую папку и в командной строке выполнить
deploy
Вывод команды выглядит примерно так:
Клиентская часть открывает файл package.json и использует поле «name» в качестве имени приложения (ничуть не странно). Далее упаковывает корневую папку исключая из архива папку node_modules. Получившийся архив отправляет POST`ом по http протоколу по адресу указанному в .deploy файле. Ну а на сервере происходят процессы уже описанные выше.
Проект молодой. Так что конструктивная критика и предложения ожидаются. Исходники хостятся на github [2]
Протестировано на парочке RedHat-based дистрибутивов и Windows 7.
Автор: AndyGrom
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/node-js/50643
Ссылки в тексте:
[1] официальный источник: https://github.com/nodejitsu/forever-monitor#options-available-when-using-forever-in-nodejs
[2] github: https://github.com/AndyGrom
[3] Источник: http://habrahabr.ru/post/205730/
Нажмите здесь для печати.