第九章 WeBASE 分布式中间件平台快速部署
想了解相关区块链开发,技术提问,请加QQ群:538327407(已满),群2:135019400
前提
快速部署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 3306
授权root用户远程访问
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; mysql > flush PRIVILEGES;
备注:由于root 不适合对外,建议使用test用户。
创建test用户并授权本地访问
mysql > GRANT ALL PRIVILEGES ON *.* TO 'test'@localhost IDENTIFIED BY '123456' WITH GRANT OPTION; mysql > flush PRIVILEGES;
测试连接和创建数据库
登录数据库
mysql -utest -p123456 -h localhost -P 3306
创建数据库
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.8.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-16-14-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-16-14-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) 64-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=3306 mysql.user=root mysql.password=123qwe mysql.database=db_mgr # 各个服务的端口 web.port=8096//改为不会冲突的 mgr.port=8081 front.port=8082 # 节点端口配置 node.p2pPort=30300 node.channelPort=20200 node.rpcPort=8545 # 是否使用已有的链 if.exist.fisco=yes # 使用已有链时需配置(已有链的路径,start_all.sh脚本所在路径) fisco.dir=/home/ubuntu/generator/nodeA/ # 搭建新链时需配置 fisco.version=2.0.0 node.counts=4
备注: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: 8082 context-path: /WeBASE-Front sdk: orgName: orgTest corePoolSize: 50 maxPoolSize: 100 queueCapacity: 100 timeout: 10000 keepAlive: 60 ip: 127.0.0.1//这里的ip 要和nodeA对应节点的rpc 监听ip 一样 channelPort: 20200 logging: config: classpath:log4j2.xml constant: keyServer: 127.0.0.1:8081 transMaxWait: 30 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 ./
读后感觉不错,有收获可以微信请作者喝杯咖啡,读后有疑问请加微信,拉群研讨,注明来意