使用MUP将Meteor应用程序部署到Ubuntu EC2实例

时间:2015-01-19 22:58:50

标签: ubuntu meteor amazon-ec2 bcrypt meteor-up

版本/背景

我正在使用版本0.7.6的meteor-up(mup),Meteor 1.0.2.1,它使用的是我读过的Mongo v0.10.33。

我在AWS上使用小型Ubuntu Server 14.04 LTS(HVM),SSD卷类型 - ami-3d50120d EC2实例作为我的Meteor应用程序的目标。

我的域名指向ami-3d50120d实例的弹性IP(我在这里称之为domain-name)。

我能够在我成功安装Mongo和Node的新mup setup上执行ami-3d50120d,输出看起来像这样:

[domain-name.com] - Installing Node.js
[domain-name.com] ✔ Installing Node.js: SUCCESS
[domain-name.com] - Setting up Environment
[domain-name.com] ✔ Setting up Environment: SUCCESS
[domain-name.com] - Copying MongoDB configuration
[domain-name.com] ✔ Copying MongoDB configuration: SUCCESS
[domain-name.com] - Installing MongoDB
[domain-name.com] ✔ Installing MongoDB: SUCCESS
[domain-name.com] - Configuring upstart
[domain-name.com] ✔ Configuring upstart: SUCCESS

重建错误条件的步骤

  1. 创建了一个新的Ubuntu实例
  2. 分配了与我的域名相关联的弹性IP
  3. 配置了我的mup.json文件(详见下文)
  4. 做了一个mup设置 - >一切安装成功
  5. ssh' d进入我的实例并执行了node -v - > v0.10.33
  6. 回到我的OSX盒子上 - >做了node -v - > v0.10.32
  7. 做了mup部署 - >发生错误情况
  8. 错误条件

    [domain-name.com] - Uploading bundle
    [domain-name.com] ✔ Uploading bundle: SUCCESS
    [domain-name.com] - Setting up Environment Variables
    [domain-name.com] ✔ Setting up Environment Variables: SUCCESS
    [domain-name.com] - Invoking deployment process
    ✘ Invoking deployment process: FAILED
    
    
    -------STDERR----
    Warning: Permanently added 'domain-name.com,55.555.5.555' (RSA) to the list of known hosts. sudo: node-gyp: command not found
    -------STDOUT-----
    => re-installing binary npm module 'bcrypt' of package 'npm-bcrypt'
    

    注意

    我想我的OSX盒子上安装了节点v0.10.32(我的亚马逊实例上安装了节点v0.10.33),但这不应该影响Meteor版本1.2.1的节点版本,因为它有据我所知,它自己的节点版本。

    mup配置

    我的mup.json,其中domain-name.com指向分配给实例的弹性IP,如下所示:

    {
      // Server authentication info
      "servers": [
        {
          "host": "domain-name.com",
          "username": "ubuntu",
          // or pem file (ssh based authentication)
          "pem": "/Users/user-name/Meteor/pem-file-name.pem"
        }
      ],
    
      // Install MongoDB in the server, does not destroy local MongoDB on future setup
      "setupMongo": true,
    
      // WARNING: Node.js is required! Only skip if you already have Node.js installed on server.
      "setupNode": true,
    
      // WARNING: If nodeVersion omitted will setup 0.10.33 by default. Do not use v, only version number.
      "nodeVersion": "0.10.33",
    
      // Install PhantomJS in the server
      "setupPhantom": false,
    
      // Application name (No spaces)
      "appName": "application-name",
    
      // Location of app (local directory)
      "app": "/Users/user-name/Meteor/application-name",
    
      // Configure environment
      "env": {
        "PORT": 80,
        "ROOT_URL": "http://domain-name.com",
        "MONGO_URL": "mongodb://localhost:27017/clients-database"
      },
    
      // Meteor Up checks if the app comes online just after the deployment
      // before mup checks that, it will wait for no. of seconds configured below
      "deployCheckWaitTime": 30
    }
    

1 个答案:

答案 0 :(得分:1)

在我的情况下,解决方案是两倍。我再次使用小型Ubuntu Server 14.04 LTS(HVM),SSD卷类型 - ami-3d50120d EC2实例。


首先我安装了节点版本0.10.35,而不是使用mup安装0.10.33。

我受到来自https://github.com/meteor/meteor/blob/devel/History.md#upgraded-dependencies的印象,该节点:0.10.33(来自0.10.29)被Meteor v1.0.2,2014年12月19日使用。


其次,我更改了AWS Security组的入站/出站规则。我添加的唯一内容是HTTP入站和所有流量出站类型。

相关问题