1

版本/背景

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

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

我的域指向ami-3d50120d实例的弹性 IP(我将domain-name在此处调用它)。

我可以mup setup在新的ami-3d50120d地方成功安装 Mongo 和 Node,输出如下所示:

[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 进入我的实例并做了一个node -v-> v0.10.33
  6. 回到我的 OSX 机器上 -> 做了一个node -v-> v0.10.32
  7. 是否部署了 mup -> 发生错误情况

错误条件

[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.jsondomain-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
}
4

1 回答 1

1

就我而言,解决方案是双重的。同样,我使用的是小型 Ubuntu Server 14.04 LTS (HVM),SSD 卷类型 - ami-3d50120d EC2 实例。


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

我对https://github.com/meteor/meteor/blob/devel/History.md#upgraded-dependencies的印象是,2014 年 Meteor v1.0.2 使用了 node: 0.10.33(来自 0.10.29) -12 月 19 日。


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

于 2015-01-21T16:14:09.930 回答