第九章 webase 分佈式中間件平臺快速部署

 

本篇博客是在和FISCO BCOS團隊、微衆銀行WeBASE團隊聯調了一個下午,最終把許多坑填上,完成WeBASE的搭建後完成的!感謝小夥伴們的找錯糾錯,感謝!

參考資料:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE/install.html#id8html

前提

快速部署webase 版本,目前支持標準版,國密版本不支持。

 

1、安裝各個環境

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


確認環境


java 查詢版本:java -version node

MySQL: mysql -vpython

python :python2 --versionmysql

mysql 操做

一、修改root 密碼

sudo passwd

 

輸入兩次新密碼linux

二、用root 登陸

su root

輸入root的密碼nginx


三、重啓mysql

sudo service mysql restart

 

要在root 用戶下操做git

受權訪問和添加用戶
使用root用戶登陸,密碼爲初始化設置的密碼github

mysql -uroot -p -h localhost -P 3306

 

受權root用戶遠程訪問web

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;

 


 

2、正式操做

一、拉取部署腳本

獲取部署安裝包:

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

 

二、解壓安裝包:

unzip webase-deploy.zip

 

三、進入目錄:

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


四、安裝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)

 

五、修改配置,運行

修改  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

 

 

六、目前支持127.0.0.1 等內網一鍵部署,不支持外網

 

 

須要將/generator/nodeA 中config.ini 節點配置修改

把rpc的listen_ip改爲127.0.0.1重啓一下,只改一個節點

七、生成sdk 目錄到指定目錄

 

因爲webase 部署須要用到sdk 證書等,因此必須在這裏生成。

 

執行以下命令

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

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

 

八、重啓節點,而且從新部署服務

bash ./nodeA/stop_all.sh

進入webase-deploy目錄,從新啓動服務

python deploy.py installAll

備註:若是此時有些端口占用問題出現,使用以下命令去查找,並將其kill

sudo lsof -i:[port]

sudo kill [PID]

九、成功部署搭建

 

簡單查看一下目錄結構

 

 


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)配置端口,發現端口沒法鏈接

 

 這個時候配置發現沒法鏈接。

 

問題定位:一、證書驗證不經過

                  二、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 ./

相關文章
相關標籤/搜索