node.jsアプリケーションのデプロイ


アプリケーションの展開は常に開発サイクルの重要なポイントであり、決して簡単ではありません。 ホスティングプロバイダーのサービスを使用する場合、ほとんどの場合、あらゆる種類の設備の十分なサービスが既に提供されています。 この記事では、複雑なホスティングインフラストラクチャを作成せずにアプリケーションをデプロイする方法について説明します...

まず、テクノロジーを決めましょう。 もちろん、開発プラットフォームから提供されたnode.jsのみを使用します。 特定のWebサービスはサーバー上で動作し、サーバーは要求を受け入れ、すべての「汚い」作業を行います。 クライアント上-コマンドラインツール。 まあ、彼なしではどうですか?

したがって、サービスは次のようにインストールされます。
npm install -g node-deploy-server --unsafe-perm 


クライアント、これ以上複雑ではありません...
 npm install -g node-deploy-client 


ソフトウェアには価値があります。今度は、クライアントとのサービスで友達を作るために、それをどのように構成するかを指示する時です。

サーバーのセットアップ

構成ファイルの名前はnodehosting.jsonで、Linuxシステムの場合は/ etcフォルダーに、Windowsの場合はモジュールのルートにあります。
構成ファイルの全文
 { "port" : 15478, "username" : "admin", "password" : "admin", "applications" : { "application1" : { "path" : "../applications", "foreverConfig" : { "cwd" : "../applications/application1" }, "startProcess" : true } } } 



アプリケーションのセットアップ:

それとは別に、依存関係のインストールについて言いたいと思います。 これは、アプリケーションのルートフォルダーでnpm installコマンドを使用して実行されます。 たとえば、.. / applications / application1です。 したがって、展開中に追加のアクションを実行する必要がある場合は、package.jsonのscripts.installフィールドにそれらを書き込むだけで十分です。

クライアントのセットアップ

アプリケーションのルートフォルダー(package.jsonの隣)に、.deployというファイルと次のコンテンツを配置する必要があります。
 { "dev" : { "url" : "http://admin:admin@localhost:15478" }, "staging" : { "url" : "http://admin:admin@192.168.1.3:15478" } } 

サーバーとは異なり、ここではそれほど多くありません-最低限はサーバーに連絡することです。 ファイルで複数の構成を指定できます。 つまり 展開用にいくつかの異なるサーバーを定義できます。たとえば、dev、staging、production。 特定のサーバーの選択は、クライアントユーティリティによって行われます。 テストケースの実際の構成名はdevおよびstagingです。 より詳細な例はgithubで見ることができます

サーバーの起動。

Linuxでサーバーを起動します
 service nodehosting start 

OSの起動時にサービスを起動する場合は、コマンドchkconfig nodehosting onを実行することを忘れないでください。

Windowsでサーバーを起動します
 sc start nodehosting.exe 


クライアントの起動

アプリケーションをデプロイするには、そのルートフォルダーに移動し、コマンドラインで実行します
 deploy dev 

コマンドからの出力は次のようになります。


どのように機能しますか?

クライアント部分はpackage.jsonファイルを開き、「名前」フィールドをアプリケーションの名前として使用します(まったく奇妙ではありません)。 次に、アーカイブからnode_modulesフォルダーを除外して、ルートフォルダーをパックします。 結果のアーカイブは、httpプロトコルを介して.deployファイルで指定されたアドレスにPOSTを送信します。 さて、サーバー上にはすでに上で説明したプロセスがあります。

謝辞。

プロジェクトは若い。 したがって、建設的な批判と提案が期待されています。 githubでホストされているソース

突然の場合。

いくつかのRedHatベースのディストリビューション、Debian 7.2(wheezy)およびWindows 7でテスト済み。

PS

2014年1月から、Webインターフェースが利用可能になりました。 したがって、アプリケーションのセットアップがはるかに簡単になりました。

そしてまた...

Source: https://habr.com/ru/post/J205730/


All Articles