一键部署webse

什么都想学。 2024-08-18 14:33:01 阅读 98

webase全家桶一键部署

一键部署可以在 同机 快速搭建WeBASE管理台环境,方便用户快速体验WeBASE管理平台。

一键部署会搭建:节点(FISCO-BCOS 2.0+)、管理平台(WeBASE-Web)、节点管理子系统(WeBASE-Node-Manager)、节点前置子系统(WeBASE-Front)、签名服务(WeBASE-Sign)。其中,节点的搭建是可选的,可以通过配置来选择使用已有链或者搭建新链。一键部署架构如下:

在这里插入图片描述

第一步配置环境,安装依赖。

安装Java(Oracle JDK8至14)

<code> 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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。