meteorupdev
Version:
Meteorupdev is a meteor enhancement tools
169 lines (120 loc) • 6.67 kB
Markdown
部署 Meteor 项目工具
[English Guide](https://github.com/meteorup/meteorupdev/blob/master/README.md)
meteorupdev 是一个 Meteor 项目快速部署工具,帮助开发人员快速、简单、安全的部署 Meteor 项目到服务器上。
可以通过 npm 安装下载 meteorup 命令。
_(ps:注意:meteorupdev 只支持在 linux 或 osx 系统中使用!)_
## 安装 meteorupdev 命令行工具
```bash
$ npm install meteorupdev -g
```
如果你没有安装 Nodejs 和 npm 可以看这里[通过 NVM 安装 Nodejs 和 NPM](https://keymetrics.io/2015/02/03/installing-node-js-and-io-js-with-nvm/)
**配置你的服务器**
```bash
> $meteorupdev setup
```
使用 meteorupdev 部署很简单,只需要两个步骤。
第一步:需要配置你的主机信息到本地项目的 package.json 文件中。然后通过 meteorupdev setup 命令完成服务器的环境安装和设置。setup 命令只支持 CentOS 和 Ubuntu 服务器操作系统。
setup 命令会在你的服务器上自动下载安装 NVM,nodejs,pm2,mongodb 等部署 meteor 需要的软件(mongodb 根据您的配置信息选择安装)。一台服务器只需要 setup 一次即可,重复在一台服务器上执行 setup 命令不会有任何效果。
_(ps:setup 配置服务器会用时比较长,服务器网络环境好的情况下1分钟左右,一般需要5-10分钟左右,这里 meteorupdev 已经做了很多优化工作,使用国内的镜像安装软件。但一台服务器只需配置一次即可。)_
**部署 Meteor 项目到你的服务器**
```
> $meteorupdev push
```
经过上面的 setup 命令之后,你的服务器已经有了部署 meteor 项目的软件环境。可以通过 push 命令将你的 meteor 程序部署到你的服务器了。
每次运行 meteorupdev push 都会将你本地最新代码部署到服务器上,并覆盖之前同名的项目,但在服务器上会自动备份之前项目的代码和数据。你可以手动后退到之前部署过的任意版本。
**配置和部署之前,需要先完善 package.json 文件中的服务器信息**
在配置和部署之前需要设置 package.json 文件,以下就是 package.json 配置文件的样例。将以下内容加入到你项目的 package.json 文件中,如果没有 package.json 文件,请新建一个 package.json 文件。
**package.json**
```
"server": {
"host": "192.168.0.234",
"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" : 22 },
"//":" server specific environment variables",
"env": {}
},
"setup": {
"//": "Install MongoDB on the server. Does not destroy the local MongoDB on future setups",
"mongo": true,
"//": "Application server path . must in /usr /opt /home /alidata directory.",
"path": "/usr/local/meteorup"
},
"deploy": {
"//": "Application name (no spaces).",
"appName": "best",
"//": "Configure environment",
"//": "ROOT_URL must be set to your correct domain (https or http)",
"env": {
"YJENV": "test", // customize environment
"MONGO_URL": "mongodb://127.0.0.1:27017/best",
"PORT": 8181,
"ROOT_URL": "http://192.168.0.234:8181"
}
}
```
**项目部署回撤**
登录服务器,进入 /usr/local/meteorup 目录,这个目录是由你的 package.json 配置文件中 setup 下 path 字段配置决定的,所以每次 push 到服务器上的项目都在这个目录下。通过 tree 你可以看到部署到服务器上的项目目录结构。
```
> $ ssh root@server
> $ cd /usr/local/meteorup
>
> # tree -L 2
>
> ├── app.json
> ├── current
> │ └── bundle
> ├── last20160622204939
> │ └── bundle
> ├── last20160622205649
> │ └── bundle
> ├── last20160622210322
> │ └── bundle
> ├── last20160622211151
> │ └── bundle
> ├── last20160622211636
> │ └── bundle
> └── tmp
```
这是个项目部署到服务器上的目录结构,可以看到所有部署过的项目都会一个备份镜像,current 目录下是当前项目的运行目录。如果要回撤到任意版本,只需要手动修改一个目录名为 current 即可。
例如:
```
> mv current backup
> $ mv last20160622204939 current
> $ pm2 start app.json
```
**查看部署到服务器上的状态**
```
> $ ssh root@server
> $ pm2 ls
>
> ┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬──────────────┬──────────┐
> │ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │
> ├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼──────────────┼──────────┤
> │ wechat │ 0 │ fork │ 11557 │ online │ 5 │ 3D │ 100.527 MB │ disabled │
> │ webot │ 1 │ fork │ 14845 │ online │ 0 │ 2D │ 69.844 MB │ disabled │
> └──────────┴────┴──────┴───────┴────────┴─────────┴────────┴──────────────┴──────────┘
```
服务器是通过 pm2 管理 node 服务的,所以你可以通过 pm2 的各种命令查看项目日志,管理你的项目服务。
## 部署完成的语音提示
config in package.json file. default would say “finished”
```bash
$ "notice": "Well done"
```
## 更新 meteorupdev
```bash
$ npm install meteorupdev -g
```
## 问题
如果提示这样的错误: sudo: sorry, you must have a tty to run sudo
请通过 ssh 登录到服务器中,找到 /etc/sudoers 文件,注释 Default requiretty 配置信息即可
```
sudo vi /etc/sudoers
#Default requiretty
```
## License 协议
Meteorupdev is made available under the terms of the MIT License (MIT)