webase全家桶一键部署
一键部署可以在 同机 快速搭建WeBASE管理台环境,方便用户快速体验WeBASE管理平台。
一键部署会搭建:节点(FISCO-BCOS 2.0+)、管理平台(WeBASE-Web)、节点管理子系统(WeBASE-Node-Manager)、节点前置子系统(WeBASE-Front)、签名服务(WeBASE-Sign)。其中,节点的搭建是可选的,可以通过配置来选择使用已有链或者搭建新链。一键部署架构如下:
在这里插入图片描述
第一步配置环境,安装依赖。
安装Java(Oracle JDK8至14)
sudo apt install -y default-jdk
java -version
安装MySQL (mysql-5.6及以上)
apt-get install software-properties-common
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe'
sudo apt-get update
sudo apt install mysql-server-5.6
sudo apt install mysql-client-5.6
sudo apt update
sudo apt install mysql-server
sudo systemctl status mysql
sudo mysql_secure_installation
启动 MySQL 服务:
sudo service mysql start
停止 MySQL 服务:
sudo service mysql stop
重启 MySQL 服务:
sudo service mysql restart
若出现以下错误:(正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 7395(unattended-upgr)持有 :)可用以下操作进行更改
sudo killall apt apt-get
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
sudo apt update
sudo apt install mysql-server}
在/etc/mysql/my.cnf配置文件的[mysqld]部分添加如下配置:
如若没有则自行添加 [mysqld]:
max_allowed_packet = 1024M
sql_mode =STRICT_TRANS_TABLES
ssl=0
default_authentication_plugin = mysql_native_password
sudo mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
配置Python(Python3.6及以上)
sudo apt-get install -y python3-pip
sudo pip3 install PyMySQL
第二步 准备就绪,一键部署
部署之前的准备工作
拉取部署脚本
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-deploy.zip
unzip webase-deploy.zip
cd webase-deploy
修改配置
① mysql数据库需提前安装,已安装直接配置即可,还未安装请参看数据库部署;
② 修改配置文件(
vi common.properties
);
- 若使用可视化部署,则忽略下文,将修改
visual-deploy.properties
,并进行可视化部署依赖服务的一键安装,具体请参考可视化部署-一键安装依赖服务
③ 一键部署支持使用已有链或者搭建新链。通过参数”if.exist.fisco”配置是否使用已有链,以下配置二选一即可:
- 当配置”yes”时,需配置已有链的路径
fisco.dir
。路径下要存在sdk目录,sdk目录中包含ca.crt, sdk.crt, sdk.key及gm目录,gm目录中包含国密SSL所需证书,包含gmca.crt、gmsdk.crt、gmsdk.key、gmensdk.crt和gmensdk.key - 当配置”no”时,需配置节点fisco版本和节点安装个数,搭建的新链默认两个群组
如果不使用一键部署搭建新链,可以参考FISCO BCOS官方文档搭建 FISCO BCOS部署流程;
④ 服务端口不能小于1024
⑤ 部署时,修改
common.properties
配置文件
# WeBASE子系统的最新版本(v1.1.0或以上版本)
webase.web.version=v1.5.5
webase.mgr.version=v1.5.5
webase.sign.version=v1.5.5
webase.front.version=v1.5.5
#####################################################################
## 使用Docker启用Mysql服务,则需要配置以下值
# 1: enable mysql in docker
# 0: mysql run in host, required fill in the configuration of webase-node-mgr and webase-sign
docker.mysql=1
# if [docker.mysql=1], mysql run in host (only works in [installDockerAll])
# run mysql 5.6 by docker
docker.mysql.port=23306
# default user [root]
docker.mysql.password=123456
#####################################################################
## 不使用Docker启动Mysql,则需要配置以下值
# 节点管理子系统mysql数据库配置
mysql.ip=127.0.0.1
mysql.port=3306
mysql.user=dbUsername #改成root
mysql.password=dbPassword #改成123456
mysql.database=webasenodemanager
# 签名服务子系统mysql数据库配置
sign.mysql.ip=localhost
sign.mysql.port=3306
sign.mysql.user=dbUsername #改成root
sign.mysql.password=dbPassword #改成123456
sign.mysql.database=webasesign
# 节点前置子系统h2数据库名和所属机构
front.h2.name=webasefront
front.org=fisco
# WeBASE管理平台服务端口
web.port=5000
# 启用移动端管理平台 (0: disable, 1: enable)
web.h5.enable=1
# 节点管理子系统服务端口
mgr.port=5001
# 节点前置子系统端口
front.port=5002
# 签名服务子系统端口
sign.port=5004
# 节点监听Ip
node.listenIp=127.0.0.1
# 节点p2p端口
node.p2pPort=30300
# 节点链上链下端口
node.channelPort=20200
# 节点rpc端口
node.rpcPort=8545
# 加密类型 (0: ECDSA算法, 1: 国密算法)
encrypt.type=0
# SSL连接加密类型 (0: ECDSA SSL, 1: 国密SSL)
# 只有国密链才能使用国密SSL
encrypt.sslType=0
# 是否使用已有的链(yes/no)
if.exist.fisco=no #yes
# 使用已有链时需配置
# 已有链的路径,start_all.sh脚本所在路径
# 路径下要存在sdk目录(sdk目录中包含了SSL所需的证书,即ca.crt、sdk.crt、sdk.key和gm目录(包含国密SSL证书,gmca.crt、gmsdk.crt、gmsdk.key、gmensdk.crt和gmensdk.key)
fisco.dir=/data/app/nodes/127.0.0.1
# 前置所连接节点,在127.0.0.1目录中的节点中的一个
# 节点路径下要存在conf文件夹,conf里存放节点证书(ca.crt、node.crt和node.key)
node.dir=node0
# 搭建新链时需配置
# FISCO-BCOS版本
fisco.version=2.9.1
# 搭建节点个数(默认两个)
node.counts=nodeCounts
一键部署
# 一键部署
部署并启动所有服务 python3 deploy.py installAll
停止一键部署的所有服务 python3 deploy.py stopAll
启动一键部署的所有服务 python3 deploy.py startAll
# 各子服务启停
启动FISCO-BCOS节点: python3 deploy.py startNode
停止FISCO-BCOS节点: python3 deploy.py stopNode
启动WeBASE-Web: python3 deploy.py startWeb
停止WeBASE-Web: python3 deploy.py stopWeb
启动WeBASE-Node-Manager: python3 deploy.py startManager
停止WeBASE-Node-Manager: python3 deploy.py stopManager
启动WeBASE-Sign: python3 deploy.py startSign
停止WeBASE-Sign: python3 deploy.py stopSign
启动WeBASE-Front: python3 deploy.py startFront
停止WeBASE-Front: python3 deploy.py stopFront
# 可视化部署
部署并启动可视化部署的所有服务 python3 deploy.py installWeBASE
停止可视化部署的所有服务 python3 deploy.py stopWeBASE
启动可视化部署的所有服务 python3 deploy.py startWeBASE
部署完成后可以看到
deploy has completed
的日志:
python3 deploy.py installAll
...
============================================================
_ _ ______ ___ _____ _____
| | | | | ___ \/ _ \/ ___| ___|
| | | | ___| |_/ / /_\ \ `--.| |__
| |/\| |/ _ | ___ | _ |`--. | __|
\ /\ | __| |_/ | | | /\__/ | |___
\/ \/ \___\____/\_| |_\____/\____/
...
...
============================================================
============== deploy has completed ==============
============================================================
============== webase-web version v1.5.5 ========
============== webase-node-mgr version v1.5.5 ========
============== webase-sign version v1.5.3 ========
============== webase-front version v1.5.5 ========
============================================================
检查各子系统进程
$ ps -ef | grep node
输出如下
root 29977 1 1 17:24 pts/2 00:02:20 /root/fisco/webase/webase-deploy/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
root 29979 1 1 17:24 pts/2 00:02:23 /root/fisco/webase/webase-deploy/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini
- 检查节点前置webase-front的进程
$ ps -ef | grep webase.front
输出如下
root 31805 1 0 17:24 pts/2 00:01:30 /usr/local/jdk/bin/java -Djdk.tls.namedGroups=secp256k1 ... conf/:apps/*:lib/* com.webank.webase.front.Application
- 检查节点管理服务webase-node-manager的进程
$ ps -ef | grep webase.node.mgr
输出如下
root 4696 1 0 17:26 pts/2 00:00:40 /usr/local/jdk/bin/java -Djdk.tls.namedGroups=secp256k1 ... conf/:apps/*:lib/* com.webank.webase.node.mgr.Application
- 检查webase-web对应的nginx进程
$ ps -ef | grep nginx
输出如下
root 5141 1 0 Dec08 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /root/fisco/webase/webase-deploy/comm/nginx.conf
- 检查签名服务webase-sign的进程
$ ps -ef | grep webase.sign
输出如下
root 30718 1 0 17:24 pts/2 00:00:19 /usr/local/jdk/bin/java ... conf/:apps/*:lib/* com.webank.webase.sign.Application
检查进程端口
通过
netstat
命令,检查各子系统进程的端口监听情况。
检查方法如下,若无输出,则代表进程端口监听异常,需要到该子系统的日志中检查日志错误信息,并根据错误提示或本文档的常见问题进行排查
- 检查节点channel端口(默认为20200)是否已监听
$ netstat -anlp | grep 20200
输出如下
tcp 0 0 0.0.0.0:20200 0.0.0.0:* LISTEN 29069/fisco-bcos
- 检查webase-front端口(默认为5002)是否已监听
$ netstat -anlp | grep 5002
输出如下
tcp6 0 0 :::5002 :::* LISTEN 2909/java
- 检查webase-node-mgr端口(默认为5001)是否已监听
$ netstat -anlp | grep 5001
输出如下
tcp6 0 0 :::5001 :::* LISTEN 14049/java
- 检查webase-web端口(默认为5000)在nginx是否已监听
$ netstat -anlp | grep 5000
输出如下
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 3498/nginx: master
- 检查webase-sign端口(默认为5004)是否已监听
$ netstat -anlp | grep 5004
输出如下
tcp6 0 0 :::5004 :::* LISTEN 25271/java
检查服务日志
检查webase-front日志,其他WeBASE服务可进行类似操作
$ cd webase-front
$ grep -B 3 "main run success" log/WeBASE-Front.log
输出如下:
2020-12-09 15:47:25.355 [main] INFO ScheduledAnnotationBeanPostProcessor() - No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
2020-12-09 15:47:25.378 [main] INFO TomcatEmbeddedServletContainer() - Tomcat started on port(s): 5002 (http)
2020-12-09 15:47:25.383 [main] INFO Application() - Started Application in 6.983 seconds (JVM running for 7.768)
2020-12-09 15:47:25.383 [main] INFO Application() - main run success...
- 查看报错日志:出现异常时,可以搜索关键字
ERROR
进行检查如,检查webase-front错误日志,其他WeBASE服务可进行类似操作
$ cd webase-front
$ grep "ERROR" log/WeBASE-Front.log
输出如下
2020-12-09 09:10:42.138 [http-nio-5002-exec-1] ERROR ExceptionsHandler() - catch frontException: no active connection available network exception requset send failed! please check the log file content for reasons.
2020-12-09 09:10:42.145 [http-nio-5002-exec-4] ERROR Web3ApiService() - getBlockNumber fail.
如果出现错误日志,根据错误提示或本文档的常见问题进行排查
访问
- 一键部署完成后,打开浏览器(Chrome Safari或Firefox)访问
http://{deployIP}:{webPort}
示例:http://localhost:5000
版权归原作者 什么都想学。 所有, 如有侵权,请联系我们删除。