Macaca 一步步布署 Reliable 系列之-Master (非 Docker)

Sencho Kong · 2016年11月21日 · 最后由 Sencho Kong 回复于 2017年03月21日 · 2265 次阅读

Ubuntu 16.04 LTS 布署 Reliable-Master(非 Docker)

由于 Master 使用 Docker 布署,更新版本时十分不方便,所以有了这个实践,下面分步为什么大家分享布署过程。这里需要有少少的 Linux 基础知识,要会用 vi 等工具。

Step.1 安装 Git

sudo apt-get install git-core

Step.2 安装 node 4.6.2

选择安装 4.6.2 稳定版,选择这个版本是有原因的,因为 6.9.1 对 zeromq 支持不太好,调用时报错,建议使用这个版本

可以参考链接安装 nvm 进行安装

以下操作是创建一个目录,把 nvm 代码 check out 下来,执行 ./install.sh 进行安装

mkdir nodejs
cd nodejs/
git clone https://github.com/creationix/nvm.git
cd nvm/
./install.sh

安装完成后注意提示,把环境变量添加进.bashrc,如果使用了 zsh 的就添加到.zshrc

=> Appending source string to /home/docker/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

就是添加这一行,vi 你的.bashrc 或.zshrc

export NVM\_DIR="\/home\/docker\/.nvm"
\[ -s "$NVM\_DIR\/nvm.sh" \] && . "$NVM\_DIR\/nvm.sh" \# This loads nvm

安装 nvm 成功后就可以安装 node

nvm install v4.6.2

Step.3 安装 zoremq

安装可以参考官网安装教程,官网英文说明可能不是太清晰,这里给出安装步骤说明。

zeromq 官网安装教程

安装依赖

sudo apt-get install libtool  pkg-config build-essential  autoconf  automake

下载源码

git clone https://github.com/zeromq/libzmq

进入目录后依次执行

./autogen.sh
./configure 
make -j 4
make check

退出一层目录,再给 libzmq 目录权限

chmod -R 777 libzmq/

再进入 libzmq 目录进行安装

sudo make install 

最后记得给 ldconfig 权限

sudo ldconfig

Step.4 Reliable-Master

找个目录把代码下载下来

git clone https://github.com/reliablejs/reliable-master.git

进入目录后安装模块

npm i

由于公司的网张封了 taobao 的域名,所以这里要修改一下 npm 源,如果有同学公司也封了这个域名的要注意,要么一直报错安装不成功。

修改淘宝源

vi Makefile

找到这一行修改,把--registry=https://registry.npm.taobao.org这句删去

install:@npm install --registry=https://registry.npm.taobao.org

修改为:

@npm install

修改之后

make build

如果成功会看到以下 webpack 打包的信息

✔ All packages installed (use 56ms, speed 0B/s, json 0(0B), tarball 0B)
Hash: 217303218486bb33071f
Version: webpack 1.13.2
Time: 4064ms
 Asset Size Chunks Chunk Names
 auth.js 3.78 kB 0 [emitted] auth
dashboard.js 1.14 MB 1 [emitted] dashboard
 history.js 1.14 MB 2 [emitted] history
 home.js 1.14 MB 3 [emitted] home
 index.js 2.42 kB 4 [emitted] index
 login.js 3.34 kB 5 [emitted] login
 password.js 4.49 kB 6 [emitted] password
 signup.js 3.99 kB 7 [emitted] signup
 task.js 1.14 MB 8 [emitted] task
 user.js 1.4 kB 9 [emitted] user
 + 191 hidden modules

Step.6 安装 MongoDB

官方安装教程

中文参考教程

安装完后执行mongo会有一个蛋痛的报错,折腾了好久。

Failed global initialization: BadValue: Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly.

不知道是不是只有 16.0.4 才会有的,处理方法是添加如下环境变量到\/etc\/profile

sudo vi /ect/profile

添加
export LC_ALL=C

使设置生效

source /ect/profile

重启一下服务

sudo service mongod stop
sudo service mongod start

现执行mongo,应该成功进入交互模式,表示已经成功安装.

Step.7 安装 Redis

这里没什么好讲,安装都很顺利,直接参考网上的教程

参考安装教程

Step.8 启动 Master

进入你 master 的目录,我的是 reliable-master,进入后执行以下命令完成启动

./bin/reliable-master server -p 8080 --verbose

8080 端口随你喜欢改,然后浏览器输入你的服务地址与端口号,done!

数据迁移

由于之前也使用 docker 布署了 MongoDB,所以需要把数据导到新的 db 里,数据包括用户信息与测试信息等,这里给出步骤,如果这些数据你都不在乎可以忽略。

查看 mongo 的容器 id

docker ps

进入 mongo 容器里

docker exec -it <containerId> bash

dump 出数据到指定目录/home/mongo

mongodump -o /home/mongo

把数据拿出来,我想了好久才想到用 scp,由于镜像里没有安装,所以先安装 scp

apt-get update
apt-get install openssh-server

scp 的操作请度娘,目的是要把备份文档拷贝出来,放到你刚才安装的 MongoDB 目录里,我是同一台主机,所以这样写

scp -r /home/mongo <username>@ip_address:~/

把文件传到~/目录下了,<username>是你的用户名,ip_address是你的服务器地址,自己替换。

回到你的 MongoDB 服务器,导入数据

mongorestore ~/mongo/

done!

QQ 群 287162474
钉钉:

共收到 3 条回复 时间 点赞

环境搭建好以后,新建一个任务:使用官方示例,任务失败,提示:'Error: File .reliable.yml must exist, please check path or filename'
task result is { _id: 58c67838e8cd32125aca99c9,
projectId: 58c67835ab06e1185ad1033b,
__v: 0,
start_at: 2017-03-13T11:16:15.223Z,
slaveId: 'badora-PC',
end_at: 2017-03-13T11:16:28.492Z,
extra: '{"description":{"commitId":"f35de33","author":"xudafeng","date":"Mon Feb 13 22:41:58 2017 +0800","subject":"update readme","branch":"master"}}',
created_at: 2017-03-13T10:45:12.585Z,
result:
[ '',
'',
'Error: File .reliable.yml must exist, please check path or filename' ],
status: 3 }
请问此问题如何处理,reliable.yml 文件是自动创建的还是手动创建的

badora 回复

手动创建的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册