Linux下 tars-web编译安装

我感觉我太难了,花了一天时间来安装, 不过总算解决了,坚持总有回报的

安装成功的效果图

1. mysql(MariaDB)安装

见上一遍文章 MYSQL安装

2. Tars C++开发环境(源码安装框架必备) (这是官方说明)

源码安装框架才需要做这一步, 如果只是用c++写服务, 只需要下载tarscpp代码即可
下载TarsFramework源码

cd  /data/
git clone https://github.com/TarsCloud/TarsFramework.git --recursive

然后进入build源码目录

cd /data/TarsFramework/build
chmod u+x build.sh
./build.sh prepare
./build.sh all

编译时默认使用的mysql开发库路径:include的路径为/usr/local/mysql/include,lib的路径为/usr/local/mysql/lib/

若mysql开发库的安装路径不在默认路径需要修改CMakeLists文件中mysql开发库的路径。CMakeLists在${source_folder}/TarsFramework/${source_folder}/TarsFramework/tarscpp/ 目录下各有一个同名文件。
修改文件中上述路径为本机mysql开发库的路径
(参考路径:"/usr/include/mysql";"/usr/lib64/mysql")。

如果需要重新编译

./build.sh cleanall
./build.sh all

切换至root用户,创建安装目录

cd /usr/local
mkdir tars
chown ${普通用户}:${普通用户} ./tars/  #这个好像不是必要

3 Tars框架安装

3.1. 框架安装模式 (这是官方说明)

框架有两种模式:

  • centos7一键部署(ubuntu类似), 安装过程中需要网络从外部下载资源
  • 制作成docker镜像来完成安装, 制作docker过程需要网络下载资源, 但是启动docker镜像不需要外网

注意:需要完成TarsFramework的编译和安装

下载tarsweb并copy到/usr/local/tars/cpp/deploy目录下(注意目录名是web, 不要搞错!):

git clone https://github.com/TarsCloud/TarsWeb.git
mv TarsWeb web  #这个步骤还是不要省
cp -rf web /usr/local/tars/cpp/deploy/

例如, 这是/usr/local/tars/cpp/deploy下的文件:

[root@cb7ea6560124 deploy]# ls -l
total 52
-rw-rw-r-- 1 tars tars 1923 Nov  2 17:31 centos7_base.repo
-rwxrwxr-x 1 tars tars 1515 Nov  5 18:21 Dockerfile
-rwxrwxr-x 1 tars tars 2844 Nov  5 18:21 docker-init.sh
-rwxrwxr-x 1 tars tars  215 Nov  5 18:21 docker.sh
-rw-rw-r-- 1 tars tars  664 Nov  2 17:31 epel-7.repo
drwxrwxr-x 4 tars tars   30 Nov  2 17:31 framework
-rwxrwxr-x 1 tars tars 4599 Nov  8 09:41 linux-install.sh
-rw-rw-r-- 1 tars tars  191 Nov  2 17:31 MariaDB.repo
-rwxrwxr-x 1 tars tars  565 Nov  8 09:23 README.md
-rwxrwxr-x 1 tars tars  539 Nov  8 09:23 README.zh.md
-rwxrwxr-x 1 tars tars 9713 Nov  7 09:42 tars-install.sh
drwxrwxr-x 2 tars tars   44 Nov  7 10:04 tools
drwxr-xr-x 11 tars tars  4096 Oct 31 11:01 web

3.2. 安装nodejs

这是tars-web最讨厌的地方, 执行又不报错, 让你找半天也不知道问题在哪 (新手、新开源项目文档少)。

安装nodejs 我是虚拟机(是多差的虚拟机啊,编译要半个小时), 就直接下载二进包,copy就能用。

  • 下载解包
wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz
xz -d node-v12.13.0-linux-x64.tar.xz
tar -xf node-v12.13.0-linux-x64.tar  
cp -rf node-v12.13.0-linux-x64 /usr/local/node-v12.13.0
  • 设置软连接
ln -s /usr/local/node-v12.13.0/bin/node /usr/bin/node
ln -s /usr/local/node-v12.13.0/bin/npm /usr/bin/npm
ln -s /usr/local/node-v12.13.0/bin/npx /usr/bin/npx
  • 设置环境变量 #指定 NODE_PATH 变量
    不设置变量,你会哭的,node找不到module
cd ~
vi .bash_profile 

加下如下 在 “PATH= P A T H : PATH: PATH:HOME/bin” 后面 添加一行,内容如下:

export NODE_PATH="/usr/local/node-v12.13.0/lib/node_modules/;/usr/local/lib/node_modules"

3.3 安装nodejs 模块

  • 使用npm全局安装pm2
    pm2 日志文件存放于/root/.pm2/logs中
npm i pm2 -g
  • tars-web 模块安装
    将/usr/local/tars/cpp/deploy/web/package.json 的模块安装
    -g 是全局, i 是install
cd /usr/local/tars/cpp/deploy/web
npm i -g

3.4. 框架部署说明 (这是官方说明)

框架可以部署在单机或者多机上, 多机是一主多从模式, 通常一主一从足够了:

  • 主节点只能有一台, 从节点可以多台
  • 主节点默认会安装:tarsAdminRegistry, tarspatch, tarsweb, tarslog, 这几个服务在从节点上不会安装
  • tarsAdminRegistry只能是单点(带有发布状态)
  • tarslog也只能是单点, 否则日志会分散在多机上
  • 原则上tarspatch, tarsweb可以是多点, 如果部署成多点, 需要把/usr/local/app/patchs目录做成多机间共享(可以通过NFS), 否则无法正常发布服务
  • 可以后续把tarslog部署到大硬盘服务器上
  • 实际使用中, 即使主从节点都挂了, 也不会影响框架上服务的正常运行, 只会影响发布

部署完成后会创建4个数据库,分别是db_tars、db_tars_web、 tars_stat、tars_property。

其中db_tars是框架运行依赖的核心数据库,里面包括了服务部署信息、服务模版信息、服务配置信息等等;

db_tars_web是web管理平台用到数据库

tars_stat是服务监控数据存储的数据库;

tars_property是服务属性监控数据存储的数据库;

3.5. 启动服务

MYSQL_HOST: mysql数据库的ip地址

MYSQL_ROOT_PASSWORD: mysql数据库的root密码

INET: 网卡的名称(ifconfig可以看到, 比如eth0), 表示框架绑定的本机IP, 注意不能是127.0.0.1

REBUILD: 是否重建数据库,通常为false, 如果中间装出错, 希望重置数据库, 可以设置为true

SLAVE: 是否是从节点

举例, 安装两台节点, 一台数据库(假设: 主[192.168.7.151], 从[192.168.7.152], mysql:[192.168.7.153])

进入/usr/local/tars/cpp/deploy, 执行:
主节点上执行(192.168.7.151)

#./tars-install.sh DB_HOST DB_port DB_user DB_pwd  本机IP  重新安装  节点
./tars-install.sh 192.168.7.151 3306 root root@appinside 192.168.7.151  false  false

主节点执行完毕后, 从节点执行:

#./tars-install.sh DB_HOST DB_port DB_user DB_pwd  本机IP  重新安装  节点
./tars-install.sh 192.168.7.151 3306 root root@appinside 192.168.7.151  false  true

执行过程中的错误参见屏幕输出, 如果出错可以重复执行(一般是下载资源出错)

 2019-10-31 11:06:13 INSTALL TARS SUCC: http://xxx.xxx.xxx.xxx:3000/ to open the tars web. 
 2019-10-31 11:06:13 If in Docker, please check you host ip and port. 
 2019-10-31 11:06:13 You can start tars web manual: cd /usr/local/app/web; npm run prd 

打开你的浏览器输入: http://xxx.xxx.xxx.xxx:3000/ 如果顺利, 可以看到web管理平台

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值