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-commonsudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe'sudo apt-get updatesudo apt install mysql-server-5.6sudo apt install mysql-client-5.6
sudo apt updatesudo apt install mysql-serversudo systemctl status mysqlsudo 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-getsudo rm /var/lib/apt/lists/locksudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lock*sudo apt updatesudo apt install mysql-server}
在/etc/mysql/my.cnf配置文件的[mysqld]部分添加如下配置:
如若没有则自行添加 [mysqld]:
max_allowed_packet = 1024Msql_mode =STRICT_TRANS_TABLESssl=0default_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-pipsudo pip3 install PyMySQL
第二步 准备就绪,一键部署
部署之前的准备工作
拉取部署脚本
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-deploy.zip
unzip webase-deploy.zipcd 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.5webase.mgr.version=v1.5.5webase.sign.version=v1.5.5webase.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-signdocker.mysql=1# if [docker.mysql=1], mysql run in host (only works in [installDockerAll])# run mysql 5.6 by dockerdocker.mysql.port=23306# default user [root]docker.mysql.password=123456####################################################################### 不使用Docker启动Mysql,则需要配置以下值# 节点管理子系统mysql数据库配置mysql.ip=127.0.0.1mysql.port=3306mysql.user=dbUsername #改成rootmysql.password=dbPassword #改成123456mysql.database=webasenodemanager# 签名服务子系统mysql数据库配置sign.mysql.ip=localhostsign.mysql.port=3306sign.mysql.user=dbUsername #改成rootsign.mysql.password=dbPassword #改成123456sign.mysql.database=webasesign# 节点前置子系统h2数据库名和所属机构front.h2.name=webasefrontfront.org=fisco# WeBASE管理平台服务端口web.port=5000# 启用移动端管理平台 (0: disable, 1: enable)web.h5.enable=1# 节点管理子系统服务端口mgr.port=5001# 节点前置子系统端口front.port=5002# 签名服务子系统端口sign.port=5004# 节点监听Ipnode.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)# 只有国密链才能使用国密SSLencrypt.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.iniroot 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 processing2020-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