
アプリケーションの展開は常に開発サイクルの重要なポイントであり、決して簡単ではありません。 ホスティングプロバイダーのサービスを使用する場合、ほとんどの場合、あらゆる種類の設備の十分なサービスが既に提供されています。 この記事では、複雑なホスティングインフラストラクチャを作成せずにアプリケーションをデプロイする方法について説明します...
まず、テクノロジーを決めましょう。 もちろん、開発プラットフォームから提供された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 } } }
- port-サービスが動作するTCPポート
- ユーザー名とパスワード-ここで説明することはありません...
- オブジェクトアプリケーション。 このオブジェクトのプロパティ名は、サービスが展開を担当するアプリケーションの名前です。
アプリケーションのセットアップ:
- path-アプリケーションの共有ルートフォルダー。 作成する心配はありません。 彼らはあなたのためにすべてを行います。
- foreverConfig-アプリケーションはforever-monitorを使用して起動されるので、 公式の情報源以上のものはありません。
- startProcess-デプロイ後にプロセスを自動的に開始します
それとは別に、依存関係のインストールについて言いたいと思います。 これは、アプリケーションのルートフォルダーで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

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

そしてまた...
- アプリケーションをデプロイする前に、インターフェースを介して新しいアプリケーションを作成する必要はなく、通常は何も設定しません。 クライアントからのリクエストを満たすだけで十分であり、アプリケーションはデフォルトのパラメーターでブロックされます。
- サーバーをSSLモードに切り替えます。
- 次のOSでテスト済み:CentOS 6、Fedora 18、Debian 7.2(wheezy)、Windows 7、Windows 8