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インターフェースが利用可能になりました。 したがって、アプリケーションのセットアップがはるかに簡単になりました。



そしてまた...




All Articles