第九章 webase 分布式中间件平台快速部署
本篇博客是在和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 分布式中间件平台快速部署的更多相关文章
- <自动化测试方案_9>第九章、持续集成平台搭建
第九章.持续集成平台搭建 (一)什么是持续集成 参考文章地址:https://blog.csdn.net/qq_32261399/article/details/76651376 敏捷软件开发(英语: ...
- 开源分布式中间件 DBLE 快速入门指南
GitHub:https://github.com/actiontech/dble 官方中文文档:https://actiontech.github.io/dble-docs-cn/ 一.环境准备 D ...
- 分布式文件系统ceph快速部署
架构图 配置ceph-deploy节点 管理节点配置ceph yum源 vim /etc/yum.repos.d/ceph.repo [ceph-noarch] name=Ceph noarch pa ...
- Java 分布式任务调度平台:PowerJob 快速开始+配置详解
本文适合有 Java 基础知识的人群 作者:HelloGitHub-Salieri 引言 HelloGitHub 推出的<讲解开源项目>系列. 项目地址: https://github.c ...
- AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- XXL-JOB分布式任务调度平台安装与部署
配XXL-JOB分布式任务调度平台安装与部署
- Gradle 1.12 翻译——第九章 Groovy快速入门
由于时间关系,没办法同时做笔记和翻译,关于Gradle的用户指南,本博客不再做相关笔记,而只对未翻译章节进行翻译并在此发表. 有关其他已翻译的章节请关注Github上的项目:https://githu ...
- 快速部署 Spring PetClinic 到函数计算平台
简介 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准 ...
- 分布式任务调度平台XXL-JOB快速搭建教程
1. XXL-JOB简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用.它的有两个核心模块,一个模块叫做 ...
随机推荐
- Expression Blend学习二UI布局
什么是布局? · Panels控件(其实就是容器控件) · 对内部的子控件提供了自动布局功能 · 可以在容器控件内继续添加容器控件(一个复杂的界面往往是多种容器控件嵌套而组成的) · 一些界面器控件也 ...
- SQLServer 以备份初始化订阅
原文:SQLServer 以备份初始化订阅 在创建事务复制时,如果发布数据库很大,使用快照初始化时,将等待很久,如果出现问题可能又得重新初始化.使用备份初始化会省很多时间,但是数据库在创建发布订阅期间 ...
- 零元学Expression Blend 4 - Chapter 33 简单轻松的学会如何使用Visual States(下)
原文:零元学Expression Blend 4 - Chapter 33 简单轻松的学会如何使用Visual States(下) 上篇提到了Visual State Manager中文翻译为视觉状态 ...
- C++ 标准库概览(一分钟就看完了)
C++ 标准库以若干头文件的方式提供. 下面简单介绍一个各头文件的内容. 第一部分 容器 Containers <array> C++11 新增.提供了容器类模板 std::array,固 ...
- uwp开发————换背景图片
原文:uwp开发----换背景图片 用后台代码来实现对容器背景的切换,用本地图片作为背景. 把需要的图片素材放到Assets文件夹下 前台xaml代码如下: <Grid x:Name=" ...
- Delphi 7.0常用函数速查手册(磁盘文件类)
在Delphi 7.0中,已为我们定义好了非常多的函数,大致分类有6种:数据类型转换函数.字符串.数组操作函数.文件.磁盘操作函数.内存.指针操作函数.数学运算函数.日期函数. 在Delphi中调用函 ...
- 基于Delphi实现客户端服务端通信Demo
在开始之前我们需要了解下这个Demo功能是啥 我们可以看到这是两个小project,左边的project有服务端和客户端1,右边的project只有一个客户端2 效果就是当两个客户端各自分别输入正确的 ...
- 在.NET Core 3.0中的WPF中使用IOC图文教程
我们都知道.NET Core 3.0已经发布了第六个预览版,我们也知道.NET Core 3.0现在已经支持创建WPF项目了,刚好今天在写一个代码生成器的客户端的时候用到了WPF,所以就把WPF创建以 ...
- sqlserver 表值函数与标量值函数
除了在我们常用的程序开发中要用到函数外,在sql语句中也常用到函数,不论哪种,思想都没有变,都是为了封装,可复用. 创建的方法和整体结构都大体相同,都少不了函数名,函数的形参,返回值等这些. 一.表值 ...
- JSON对象和JavaScript对象直接量的区别--不同之处
JSON对象和JS对象直接量 在工作当中,我们总是可以听到人说将数据转换为JSON对象,或者说把JSON对象转换为字符串之类的话,下面是关于JSON的具体说明. JSON对象并不是JavaScript ...