本篇博客是在和FISCO BCOS团队、微众银行WeBASE团队联调了一个下午,最终把许多坑填上,完成WeBASE的搭建后完成的!感谢小伙伴们的找错纠错,感谢!

参考资料:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE/install.html#id8

前提

快速部署webase 版本,目前支持标准版,国密版本不支持。

一、安装各个环境

Java jdk1.8
MySQL MySQL-5.6
Python 2.7
MySQL-python 1.2.5

确认环境

java 查询版本:java -version

MySQL: mysql -v

python :python2 --version

mysql 操作

1、修改root 密码

sudo passwd

输入两次新密码

2、用root 登录

su root

输入root的密码

3、重启mysql

sudo service mysql restart

要在root 用户下操作

授权访问和添加用户
使用root用户登录,密码为初始化设置的密码

mysql -uroot -p -h localhost -P 

授权root用户远程访问

mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;
mysql > flush PRIVILEGES;

备注:由于root 不适合对外,建议使用test用户。

创建test用户并授权本地访问

mysql > GRANT ALL PRIVILEGES ON *.* TO 'test'@localhost IDENTIFIED BY '' WITH GRANT OPTION;
mysql > flush PRIVILEGES;

测试连接和创建数据库
登录数据库

mysql -utest -p123456 -h localhost -P 

创建数据库

mysql > create database db_mgr;

二、正式操作

1、拉取部署脚本

获取部署安装包:

wget https://github.com/WeBankFinTech/WeBASELargeFiles/releases/download/V1.0.1/webase-deploy.zip

2、解压安装包:

unzip webase-deploy.zip

3、进入目录:

cd webase-deploy

找不到MySQLdb

Traceback (most recent call last):
...
ImportError: No module named MySQLdb

解法

sudo apt-get install -y python-pip
sudo pip install MySQL-python

遇到问题,试试:解决 Command "python setup.py egg_info" failed with error code 1 问题

在执行 pip install -r requirements.txt 时遇到错误:

Command "python setup.py egg_info" failed with error code 1

解决方法是更新 setuptools 和 pip:

pip install --upgrade setuptools
python -m pip install --upgrade pip

针对该问题:提的github pr https://github.com/WeBankFinTech/WeBASE/pull/26

4、安装oracle sdk

opensdk 和oracle sdk差别(做一些了解)

https://blog.csdn.net/weilin705/article/details/88950522

下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

(1)下载 8.212 版本

sudo tar -zxvf jdk-8u212-linux-x64.tar.gz

(2)解压目录下

tar -zxvf jdk-8u211-linux-x64.tar.gz

(3)配置sudo vi /etc/profile

JAVA_HOME=/home/ubuntu/software/jdk1..0_212
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH==.:$JAVA_HOME/lib
export JAVA_HOME CLASSPATH PATH

在本步骤操作,修改完成,查看java -version 依然是opensdk 版本

这是不对的,需要去修改。

(4)命令whereis java、which java,确认java 位置

ubuntu@VM---ubuntu:~$ which java
/usr/bin/java

(5)把 /usr/bin/java 下面java 移走(因为这个java 会干扰我们正常的java配置)

mv /usr/bin/java /home/ubuntu/software

(6)重新载入配置

source /etc/profile

(7)查看java 版本

root@VM---ubuntu:/usr/bin# java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) -Bit Server VM (build 25.212-b10, mixed mode)

5、修改配置,运行

修改  common.properties

[common]

# 下载链接,默认不修改
web.package.url=https://www.fisco.com.cn/cdn/WeBASE/release/download/V1.0.1/webase-web.zip
mgr.package.url=https://www.fisco.com.cn/cdn/WeBASE/release/download/V1.0.1/webase-node-mgr.zip
front.package.url=https://www.fisco.com.cn/cdn/WeBASE/release/download/V1.0.1/webase-front.zip # 数据库配置
mysql.ip=localhost//本地mysql 地址
mysql.port=
mysql.user=root
mysql.password=123qwe
mysql.database=db_mgr # 各个服务的端口
web.port=8096//改为不会冲突的
mgr.port=
front.port= # 节点端口配置
node.p2pPort=
node.channelPort=
node.rpcPort= # 是否使用已有的链
if.exist.fisco=yes # 使用已有链时需配置(已有链的路径,start_all.sh脚本所在路径)
fisco.dir=/home/ubuntu/generator/nodeA/ # 搭建新链时需配置
fisco.version=2.0.
node.counts=

备注:8080 端口nginx 占用,所以端口也要改一下,改为8096 只要不冲突就好了

保存,并重新启动部署

python deploy.py installAll

6、目前支持127.0.0.1 等内网一键部署,不支持外网

需要将/generator/nodeA 中config.ini 节点配置修改

把rpc的listen_ip改成127.0.0.1重启一下,只改一个节点

7、生成sdk 目录到指定目录

由于webase 部署需要用到sdk 证书等,所以必须在这里生成。

执行如下命令

./generator --generate_sdk_certificate ./nodeA ./dir_agency_ca/agencyA/

./generator --generate_sdk_certificate ./nodeB ./dir_agency_ca/agencyB/

8、重启节点,并且重新部署服务

bash ./nodeA/stop_all.sh

进入webase-deploy目录,重新启动服务

python deploy.py installAll

备注:如果此时有些端口占用问题出现,使用如下命令去查找,并将其kill

sudo lsof -i:[port]

sudo kill [PID]

9、成功部署搭建

简单查看一下目录结构

log是一键安装的日志,webase-*是webase的三个组件

(1)登录账号密码 http://148.70.170.96:8096/#/login

写入官方的默认账号和密码

admin/Abcd1234

参考资料:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Console-Suit/index.html#id5

一开始发现 数据库异常,原来是mysql root 权限问题,

进入目录::/home/ubuntu/webase-deploy/webase-node-mgr/conf

vim application.yml

将对应的mysql 的用户 改为test的

(2)配置端口,发现端口无法连接

这个时候配置发现无法连接。

问题定位:1、证书验证不通过

2、ssl 和节点的连接失败

将链的控制台 证书等copy 给对应目录下

修改 application.yml文件的配置

spring:
datasource:
url: jdbc:h2:file:~/.h2/front_db;DB_CLOSE_ON_EXIT=FALSE
databaseName: db
driverClassName: org.h2.Driver
serverName:
username:
password:
jpa:
database-platform: org.hibernate.dialect.H2Dialect
database: H2
openInView: false
show_sql: false
generate-ddl: true
hibernate:
ddl-auto: update
naming-strategy: org.hibernate.cfg.EJB3NamingStrategy
session:
events:
log: false
properties:
hibernate.cache.use_query_cache: false
hibernate.generate_statistics: false
h2:
console:
enabled: true
path: /console
settings:
web-allow-others: false
trace: true server:
port:
context-path: /WeBASE-Front sdk:
orgName: orgTest
corePoolSize:
maxPoolSize:
queueCapacity:
timeout:
keepAlive:
ip: 127.0.0.1//这里的ip 要和nodeA对应节点的rpc 监听ip 一样
channelPort: logging:
config: classpath:log4j2.xml constant:
keyServer: 127.0.0.1:
transMaxWait:
monitorDisk: /home/ubuntu/generator/nodeA/
aesKey: EfdsW23D23d3df43

配置成功,登录,修改密码

控制台展示

节点管理

节点监控

至此,完成部署。

附录

辅助操作权限等,可以使用的命令

权限修改

常用方法如下:

sudo chmod 600 ××× (只有所有者有读和写的权限)
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
sudo chmod 666 ××× (每个人都有读和写的权限)
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)

设置ubuntu 账户拥有当前文件夹变更拥有者
sudo chown -R ubuntu:users ./

读后感觉不错,有收获可以微信请作者喝杯咖啡,读后有疑问请加微信,拉群研讨,注明来意

第九章 webase 分布式中间件平台快速部署的更多相关文章

  1. <自动化测试方案_9>第九章、持续集成平台搭建

    第九章.持续集成平台搭建 (一)什么是持续集成 参考文章地址:https://blog.csdn.net/qq_32261399/article/details/76651376 敏捷软件开发(英语: ...

  2. 开源分布式中间件 DBLE 快速入门指南

    GitHub:https://github.com/actiontech/dble 官方中文文档:https://actiontech.github.io/dble-docs-cn/ 一.环境准备 D ...

  3. 分布式文件系统ceph快速部署

    架构图 配置ceph-deploy节点 管理节点配置ceph yum源 vim /etc/yum.repos.d/ceph.repo [ceph-noarch] name=Ceph noarch pa ...

  4. Java 分布式任务调度平台:PowerJob 快速开始+配置详解

    本文适合有 Java 基础知识的人群 作者:HelloGitHub-Salieri 引言 HelloGitHub 推出的<讲解开源项目>系列. 项目地址: https://github.c ...

  5. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  6. XXL-JOB分布式任务调度平台安装与部署

    配XXL-JOB分布式任务调度平台安装与部署

  7. Gradle 1.12 翻译——第九章 Groovy快速入门

    由于时间关系,没办法同时做笔记和翻译,关于Gradle的用户指南,本博客不再做相关笔记,而只对未翻译章节进行翻译并在此发表. 有关其他已翻译的章节请关注Github上的项目:https://githu ...

  8. 快速部署 Spring PetClinic 到函数计算平台

    简介 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准 ...

  9. 分布式任务调度平台XXL-JOB快速搭建教程

    1. XXL-JOB简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用.它的有两个核心模块,一个模块叫做 ...

随机推荐

  1. 关于SetLength报Out of memory的研究及解决办法

    关于SetLength报Out of memory的研究及解决办法 最近在做一个GIS系统, 在读GIS数据时采用了动态数组,突然读一个数据时SetLength报错!Out of memory 仔细研 ...

  2. 【转】微信退款时候报”请求被中止: 未能创建 SSL/TLS 安全通道“或”The request was aborted: Could not create SSL/TLS secure channel“的错误

    退款测试在我本机测试一切都是正常的,但是发布到了服务器就报这样的一个错啦 但是无论百度或者google或者bing,你能够搜索到的结果都很类似,综合起来就是加这样一些代码,如下 ServicePoin ...

  3. WPF 窗体边框处理

    一般做wpf窗口时都不会使用默认的标题栏等,会把他隐藏掉 此时设置以下属性 WindowStyle.AllowsTransparency.ResizeMode 中的两个或三个都能达到目的. 有一种场景 ...

  4. MVC4使用SignalR出现$.connection is undefined错误备忘

    SignalR使用过程中一定要注意js的引用顺序,否则就会出现$.connection is undefined脚本错误.

  5. Virtualbox使用点滴(共享USB设备,Linux下我的用户没有加到vboxuser中去)

    由于网银客户端的问题,只能够在windows环境下支付,所以一直保存着一个激活的virtualbox下的windows,用来完成在线支付. 过去这个激活的windows是安装在ubuntu 10.10 ...

  6. “多团队大规模”开发模式 - 基于SAP HANA平台的多团队产品研发

    应用SAP HANA “官方”开发模式的伙伴们在转到“多团队大规模”开发模式时会遇到各式各样的心理不适应的状况,各种纠结.比如GIT Repository和HANA Repository冲突什么的. ...

  7. SAP HANA 开发模式 - 基于SAP HANA平台的多团队产品研发

    “基本”开发模式 Windows: Unix/Linux: 在基本模式下我们可以通过regi来进行激活我们的object.Regi是一个类git功能的,方便和HANA repository交互的一个命 ...

  8. pip升级到18.0版本过程中报错解决方法

    我这台电脑是windows10系统,一般在cmd命令行界面下执行pip的升级命令:pip install –upgrade pip 安装的时候,会有拒绝访问报错:这个时候应该是权限的问题,于是在win ...

  9. java多线程之管道流

    java语言中提供了各种各样的流供我们操纵数据,其中管道流(pipeStream)是一种特殊的流,用于在不同线程间直接传送数据. 一个线程发送数据到输出管道,另一个线程从输入管道读取数据,通过使用管道 ...

  10. java关键字-interface

    1:是用关键字interface定义的. 2:接口中包含的成员,最常见的有全局常量.抽象方法. 注意:接口中的成员都有固定的修饰符. 成员变量:public static final 成员方法:pub ...