首页 > 其他分享 >WeBase部署

WeBase部署

时间:2024-01-22 11:47:13浏览次数:29  
标签:deploy 部署 WeBase mysql docker 节点 python3 WeBASE

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

 

 

平台要求

推荐使用CentOS 7.2+, Ubuntu 16.04及以上版本, 一键部署脚本将自动安装openssl, curl, wget, git, nginx, dos2unix相关依赖项。

其余系统可能导致安装依赖失败,可自行安装openssl, curl, wget, git, nginx, dos2unix依赖项后重试

 

我这里选择的环境是centos7,由于我这里是离线环境的,我需要先在能联网的虚拟机下载好依赖环境的安装包

在虚拟机下面命令下载相应的rpm包

yumdownloader openssl curl wget git nginx dos2unix

 

 

然后把对应的rpm包传到我们的离线服务器上面,并通过以下命令安装下载好的包

rpm -ivh *.rpm --force --nodeps

 

检查Java

 

检查mysql环境

mysql数据库我这里是通过docker-compose部署的

[root@tjylyyjgpt-ser3 mysql5.7]# ls
data  docker-compose.yml  mysql.tar
[root@tjylyyjgpt-ser3 mysql5.7]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 1e4405fe1ea9        4 years ago         437MB
[root@tjylyyjgpt-ser3 mysql5.7]# cat docker-compose.yml
version: '3.1'
services:
  db:
    # 目前 latest 版本为 MySQL8.x
    image: mysql:5.7
    restart: always
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: 你的mysql密码
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql

[root@tjylyyjgpt-ser3 mysql5.7]# docker-compose ps
Name               Command               State                 Ports
----------------------------------------------------------------------------------
mysql   docker-entrypoint.sh --def ...   Up      0.0.0.0:3306->3306/tcp, 33060/tcp

 

 

检查Python

使用Python3.6或以上版本:

先在虚拟机下载离线依赖环境包

yumdownloader install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc libffi-devel

 

然后把离线包上传到我们的离线服务器并安装:

rpm -ivh *.rpm --force --nodeps

 

下载Python3需要的rpm包

yumdownloader  python3-setuptools  python3-libs  python3 python3-pip

 

上传到服务器,然后安装

rpm -ivh *.rpm --force --nodeps

 

 温馨提示,在离线环境下,特别不推荐通过源码编译的方式安装python3,虽然网上很多教程,但是编译时候会报各种环境问题的错误,解决起来非常麻烦。

 

PyMySQL部署(Python3.6+)

Python3.6及以上版本,需安装PyMySQL依赖包

还是先通过虚拟机把相应的安装包下载过来

pip3 download -d /opt/PyMySQL PyMySQL

 

 同样的方式把安装包传到服务器上,并安装

pip3 install PyMySQL-1.0.2-py3-none-any.whl

 

同时需要校验一下我们是否安装成功

 

检查服务器网络策略

网络策略检查:

  • 开放WeBASE管理平台端口:检查webase-web管理平台页面的端口webPort(默认为5000)在服务器的网络安全组中是否设置为开放。如,云服务厂商如腾讯云,查看安全组设置,为webase-web开放5000端口。若端口未开放,将导致浏览器无法访问WeBASE服务页面
  • 开放节点前置端口:如果希望通过浏览器直接访问webase-front节点前置的页面,则需要开放节点前置端口frontPort(默认5002);由于节点前置直连节点,不建议对公网开放节点前置端口,建议按需开放

 可以看到我们的5000端口没有被占用

 

获取部署安装包

wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-deploy.zip

 

解压

unzip webase-deploy.zip

 

 

修改配置

① 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版本和节点安装个数,搭建的新链默认两个群组

​ 注:使用国密版需要修改设置配置项encrypt.type=1。前置SDK与节点默认使用非国密SSL,如果需要使用国密SSL,需要修改设置配置项encrypt.sslType=1

④ 服务端口不能小于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
mysql.password=dbPassword
mysql.database=webasenodemanager

# 签名服务子系统mysql数据库配置
sign.mysql.ip=localhost
sign.mysql.port=3306
sign.mysql.user=dbUsername
sign.mysql.password=dbPassword
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

# 使用已有链时需配置
# 已有链的路径,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

 

 

这个是我的配置:

[common]

# Webase Subsystem Version (v1.1.0 or above)
webase.web.version=v1.5.5
webase.mgr.version=v1.5.5
webase.sign.version=v1.5.5
webase.front.version=v1.5.5

#####################################################################
# if use [installDockerAll] to install WeBASE by docker
# if use [installAll] or [installWeBASE], ignore configuration here

# 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=3306
# default user [root]
docker.mysql.password=cetc@2024
#####################################################################

# Mysql database configuration of WeBASE-Node-Manager
mysql.ip=172.16.119.58
mysql.port=3306
mysql.user=root
mysql.password=cetc@2024
mysql.database=webasenodemanager

# Mysql database configuration of WeBASE-Sign
sign.mysql.ip=172.16.119.58
sign.mysql.port=3306
sign.mysql.user=root
sign.mysql.password=cetc@2024
sign.mysql.database=webasesign
# if docker mysql disabled[docker.mysql=0] above

# H2 database name of WeBASE-Front (docker mode ignore this)
front.h2.name=webasefront
front.org=fisco

# WeBASE-Web service port
web.port=5000
# enable WeBASE-Web overview pages for mobile phone(docker mode not support h5 yet)
# (0: disable, 1: enable)
web.h5.enable=1

# WeBASE-Node-Manager service port
mgr.port=5001

# WeBASE-Front service port
front.port=5002

# WeBASE-Sign service port
sign.port=5004

# Node listening IP
node.listenIp=172.16.119.58
# Node p2p service port
node.p2pPort=30300
# Node channel service port
node.channelPort=20200
# Node rpc service port
node.rpcPort=8545

# Encrypt type (0: standard, 1: guomi)
encrypt.type=0
# ssl encrypt type (0: standard ssl, 1: guomi ssl)
# only guomi type support guomi ssl
encrypt.sslType=0

# Use existing chain or not (yes/no)
if.exist.fisco=no

### if build new chain, [if.exist.fisco=no]
# Configuration required when building a new chain
# Fisco-bcos version
fisco.version=2.9.1
# Number of building nodes (default value: 2)
node.counts=nodeCounts

### if using exited chain, [if.exist.fisco=yes]
# The path of the existing chain, the path of the start_all.sh script
# Under the path, there should be a 'sdk' directory where the SDK certificates (ca.crt, sdk.crt, node.key and gm directory(gm ssl)) are stored
fisco.dir=/data/app/nodes/127.0.0.1
# Node directory in [fisco.dir] for WeBASE-Front to connect
# example: 'node.dir=node0' would auto change to '/data/app/nodes/127.0.0.1/node0'
# Under the path, there is a conf directory where node certificates (ca.crt, node.crt and node.key) are stored
node.dir=node0

 

部署

  • 执行installAll命令,部署服务将自动部署FISCO BCOS节点,并部署 WeBASE 中间件服务,包括签名服务(sign)、节点前置(front)、节点管理服务(node-mgr)、节点管理前端(web)

备注:

  • 部署脚本会拉取相关安装包进行部署,需保持网络畅通
  • 首次部署需要下载编译包和初始化数据库,重复部署时可以根据提示不重复操作
  • 部署过程中出现报错时,可根据错误提示进行操作,或根据本文档中的常见问题进行排查
  • 不要用sudo执行脚本,例如sudo python3 deploy.py installAll(sudo会导致无法获取当前用户的环境变量如JAVA_HOME)
# 部署并启动所有服务
python3 deploy.py installAll

 

 

部署完成后可以看到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      ========
============================================================

 

 

服务部署后,需要对各服务进行启停操作,可以使用以下命令:

# 一键部署
部署并启动所有服务        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

 

 

访问

WeBASE管理平台:

  • 一键部署完成后,打开浏览器(Chrome Safari或Firefox)访问
http://{deployIP}:{webPort}
示例:http://localhost:5000

 

备注:

  • 部署服务器IP和管理平台服务端口需对应修改,网络策略需开通
    • 使用云服务厂商的服务器时,需要开通网络安全组的对应端口。如开放webase使用的5000端口
  • WeBASE管理平台使用说明请查看使用手册(获取WeBASE管理平台默认账号和密码,并初始化系统配置)
    • 默认账号为admin,默认密码为Abcd1234。首次登陆要求重置密码
    • 添加节点前置WeBASE-Front到WeBASE管理平台;一键部署时,节点前置与节点管理服务默认是同机部署,添加前置则填写IP为127.0.0.1,默认端口为5002。参考上文中common.properties的配置项front.port={frontPort}
  • 检查节点前置是否启动,可以通过访问http://{frontIp}:{frontPort}/WeBASE-Front(默认端口5002);访问前,确保服务端已对本地机器开放端口,如开放front的5002端口。(不建议节点前置的端口对公网开放访问权限,应对部分机器IP按需开放)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

 

 

 

 

 

 

 

 

 

 

标签:deploy,部署,WeBase,mysql,docker,节点,python3,WeBASE
From: https://www.cnblogs.com/braveym/p/17974554

相关文章

  • 企业级GitLab在Docker部署使用
    一、部署gitlab这里使用的是Centos8,安装Docker环境,这里不说了,参考:https://www.cnblogs.com/wei325/p/15139701.htmlgitlab有ce版和ee版,ce版为免费版本;ee版为企业版本,需要收费;这里用ce版。1)拉取Gitlab镜像dockerpullgitlab/gitlab-ce  2)启动Docker先建3个目......
  • 【OpenVINO】基于 OpenVINO C++ API 部署 RT-DETR 模型
     RT-DETR是在DETR模型基础上进行改进的,一种基于DETR架构的实时端到端检测器,它通过使用一系列新的技术和算法,实现了更高效的训练和推理,在前文我们发表了《基于OpenVINO™PythonAPI部署RT-DETR模型|开发者实战》,在该文章中,我们基于OpenVINO™PythonAPI向大家展示......
  • IDEA之Tomcat进行热部署
    前言由于最近手上有个web项目需要完成,是Tomcat部署的,每次修改想看成效都得重新启动Tomcat(烦,后来了解到可以进行热部署,就可以实时更新修改内容了IDEA设置修改首先得修改IDEA本身的设置,这里的几个都勾上Tomcat配置修改修改箭头所标处注意事项首先Tomcat配置所部署的工件得是......
  • 使用docker容器部署zabbix5.4
    1.创建自定义网络dockernetworkcreate--subnet172.20.0.0/16--ip-range172.20.240.0/20zabbix-net2.运行MySQL服务dockerrun--namemysql-server-t\-eMYSQL_DATABASE="zabbix"\-eMYSQL_USER="zabbix"\-e......
  • Zlib安装部署教程
    1、进入网址,下载相应压缩包网址在此:传送解压压缩包;2、打开终端,进入解压的文件夹的路径nmake-fwin32/Makefile.msc接下来的步骤可以参考这个链接:传送门重定向目标完成:......
  • 现代化个人网站构建与部署方法
    现代化个人网站构建与部署方法Hugo作为静态网站生成器,是一个将Markdown转化为漂亮的静态网站的工具AWSS3用于托管网站本身Docker用于运行Hugo并从的Markdown文件生成网站网站仍然使用Hugo,托管在云负载平衡器后面的谷歌云存储(GCS)上。使用CloudBuild来生成和部署我的......
  • 将 .NET 8应用 以 dotnet publish 创建容器镜像并结合 Github Actions 部署到 Azure
    介绍.NET8无需DockerFile即可为.NET应用创建docker映像的新方法,我将使用dotnetpublish将.NET应用容器化,在本文中,我将分享我如何为.NET8的项目创建一个简单的ci/cd的经验。它包括2个主题:创建用于生成.NET应用并将其发布到Azure的GitHub工作流如何使用do......
  • 二进制免安装的方式,部署java1.8开发环境
    (1)配置Java环境#1.下载二进制压缩文件[root@servertools]#wgethttps://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz#2.解压Java二进制文件[root@servertools]#tar-xvfjdk-18_linux-x64_bin.tar.gz#3.编写Java代码[root@server~]#catH......
  • Ubuntu20.04安装部署Jenkins
     Jenkins要求Java8及更高版本,检查系统上是否安装了Javajava--version如果没有安装Java,执行如下命令,在您的系统上安装Javasudoaptinstall-yopenjdk-17-jre-headless再次验证Java版本安装Jenkins会启用JenkinsAPT软件源,导入源GPGkey,并且安装Jenkins软件包......
  • Ingress企业实战:部署多个Ingress控制器篇
    背景在大规模集群场景中,部分服务需要通过公网Ingress对外提供服务访问,但是有部分服务只对内提供服务,不允许使用公网访问,仅支持内部服务间调用,此时可以通过部署两套独立的Ingress来实现,一套支持公网访问,一套仅支持内网访问。接下来,我们通过最佳实践进行实现喽!架构图最佳实践说明......