UbuntuにMeteorアプリケーションをデプロイする

この記事では、Ubuntu 14.04を実行するVultr VPSにMeteorアプリをデプロイする方法について説明します。他のLinuxディストリビューションでも動作する可能性があります(ご自身の責任で試してください)。

Meteorコミュニティで活発に活動しているArunoda Susiripalaという独創的なフェローは、mupx(「Meteor Up X」の略)と呼ばれる配備ツールを開発しました。これにより、sshを介してMeteorアプリケーションをリモートサーバーに非常に簡単に配備できます。Mupxはmupの後継です。プロセスを最初から最後まで順を追って説明します。幸い、Mupはほとんどの重い作業を行うので、これは簡単です。

最初のステップは、mupxをインストールすることです。これ、VPSサーバーではなく、開発ワークステーションで行います。Node.jsがすでにインストールされていることを確認して、次を実行します。

$ npm install -g mupx

インストールが完了したら、Meteorプロジェクトフォルダー(例:)に移動し/projects/myApp、次のコマンドを実行します。

$ mkdir .deploy
$ cd $_
$ mupx init

$_構文に不慣れな人にとっては、これはコマンドで使用される最後の引数のショートカットです。したがって、この場合cd $_はとして実行されcd .deployます。

次の出力が表示されます。

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

Empty Project Initialized!

初期化プロセスは、2つのファイルを作成し、mup.jsonそしてsettings.json。後者のファイルは今のところそのままにしておきます。さあ、開いてくださいmup.json。この記事の執筆時点では、デフォルトmup.jsonは次のようになっています。

{
  // Server authentication info
  "servers": [
    {
      "host": "hostname",
      "username": "root",
      "password": "password",
      // or pem file (ssh based authentication)
      // WARNING: Keys protected by a passphrase are not supported
      //"pem": "~/.ssh/id_rsa"
      // Also, for non-standard ssh port use this
      //"sshOptions": { "port" : 49154 },
      // server specific environment variables
      "env": {}
    }
  ],

  // Install MongoDB on the server. Does not destroy the local MongoDB on future setups
  "setupMongo": true,

  // Application name (no spaces).
  "appName": "meteor",

  // Location of app (local directory). This can reference '~' as the users home directory.
  // i.e., "app": "~/Meteor/my-app",
  // This is the same as the line below.
  "app": "/path/to/the/app",

  // Configure environment
  // ROOT_URL must be set to your correct domain (https or http)
  "env": {
    "PORT": 80,
    "ROOT_URL": "http://myapp.com"
  },

  // Meteor Up checks if the app comes online just after the deployment.
  // Before mup checks that, it will wait for the number of seconds configured below.
  "deployCheckWaitTime": 15,

  // show a progress bar while uploading. 
  // Make it false when you deploy using a CI box.
  "enableUploadProgressBar": true
}

セットアッププロセスを機能させるには、いくつか変更する必要があります。

まず、hostVPSのIPアドレスを設定してください。次に例を示します。

"host": "123.123.123.123",

デフォルトの22以外のポート番号を使用する必要がある場合は、次のようにsshOptionsフィールドを使用して使用できます。

"host": "123.123.123.123",
"sshOptions": { "port": 9876 },

usernameMeteorアプリのインストールを所有するユーザーに値を設定します。セキュリティ上の理由から、パスワード行を削除し、代わりにSSHキーを使用することをお勧めします。pem値を含む行のコメントを解除し、VPSにインストールしたSSH公開鍵に対応するSSH秘密鍵を指していることを確認します(で/root/.ssh/authorized_keys)。パスワード行の後に必ずカンマを追加してください!SSHキーにパスフレーズが添付されている場合は、pem行を完全に削除し、SSH秘密キーがsshエージェント(Macなどssh-add <path to ssh private key>)にキャッシュされていることを確認してください。

setupMongoデフォルト値に設定したままにします。

appNameMeteorアプリの名前に変更します。私たちの場合には:

"appName": "myApp",

...そして、この展開フォルダを基準にして、アプリの場所も設定します。

"app": "..",

最後に、をROOT_URLアプリに指定されたURL に設定します。ポート番号を標準のHTTPポートに明示的に設定します。

// Configure environment
"env": {
  "ROOT_URL": "http://myapp.com",
  "PORT": 80
},

それでおしまい!mup.jsonファイルを保存して実行します。

$ mupx setup

この時点で、mupxはVPSにSSHで接続し、Dockerをインストールし、環境を設定して、適切なDockerイメージをpullします。次にアプリをデプロイします。

$ mupx deploy

次に、に移動するhttp://123.123.123.123と、ページが読み込まれたときにアプリが表示されます。

マルチコアのサポート

VPSに複数のコアがある場合、Meteorアプリはそれを利用できます。いくつかの簡単な調整を行う必要があります。

まず、クラスターパッケージをインストールする必要があります。Meteorアプリのフォルダー(この例では/projects/myApp)に移動し、次のように入力します。

$ meteor add meteorhacks:cluster

次に、mup.jsonファイルを編集して、環境変数セクションを次のように変更します。

// Configure environment
"env": {
  "ROOT_URL": "http://myapp.com",
  "PORT": 80,
  "CLUSTER_WORKERS_COUNT": "auto"
},

アプリに新しいパッケージを追加したので、再デプロイする必要があります。

$ mupx setup && mupx deploy

mup.jsonアプリ全体をデプロイせずに環境変数を変更したい場合は、単にreconfigureコマンドを使用します。これは、アプリケーションに変更が加えられていない場合に役立ちます。

$ mupx reconfig

おめでとうございます。Meteorアプリが稼働しました。また、アプリはVPSが再起動するたびに自動的に起動します。Meteorの導入と管理に関する今後の記事に注目してください。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。