可视化部署
可视化部署是指通过 WeBASE 管理平台(WeBASE-Web + WeBASE-Node-Manager),在 多台 主机上快速部署 FISCO-BCOS 底层节点和 WeBASE-Front 前置 以及 对底层节点的扩容操作。
可视化部署,需要先部署依赖服务,包括管理平台(WeBASE-Web)、节点管理子系统(WeBASE-Node-Manager)、签名服务(WeBASE-Sign)。
然后通过 WeBASE 管理平台(WeBASE-Web)的界面在填入的主机中部署节点(FISCO-BCOS 2.5.0+,暂未支持FISCO-BCOS 3.0系列)和节点前置子系统(WeBASE-Front 1.4.0)
部署依赖服务
对于依赖服务的安装,有两种方式( 一键部署 和 手动部署 ),选择其中一种部署方式即可
&&&一键部署依赖服务:适合同机部署,快速体验WeBASE的情况使用&&&
&&&手动部署依赖服务:适合多机部署,企业级的情况使用。&&&
手动部署请参照https://webasedoc.readthedocs.io/zh-cn/latest/docs/WeBASE-Install/visual_deploy.html,这里主要以一键部署为例**(具体环境依赖参考一键部署-前提条件)。**
安装Java(Oracle JDK8至14)
安装默认Java版本(Java 8或以上)
sudo apt install -y default-jdk
java -version
安装MySQL (mysql-5.6及以上)
apt-get install software-properties-common
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe'
sudo apt-get update
sudo apt install mysql-server-5.6
sudo apt install mysql-client-5.6
sudo apt update
sudo apt install mysql-server
sudo systemctl status mysql
sudo mysql_secure_installation
启动 MySQL 服务:
sudo service mysql start
停止 MySQL 服务:
sudo service mysql stop
重启 MySQL 服务:
sudo service mysql restart
sudo killall apt apt-get
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
sudo apt update
sudo apt install mysql-server}
在/etc/mysql/my.cnf配置文件的[mysqld]部分添加如下配置:
如若没有则自行添加 [mysqld]:
max_allowed_packet = 1024M
sql_mode =STRICT_TRANS_TABLES
ssl=0
default_authentication_plugin = mysql_native_password
sudo mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
配置Python(Python3.6及以上)
sudo apt-get install -y python3-pip
sudo pip3 install PyMySQL
配置Ansible
Ansible配置包括以下三步:
- 宿主机安装Ansible
- 仅在宿主机安装节点时,则仅需安装Ansible,无需完成下面两步host与免密配置
- 配置Ansible host列表
- 配置Ansible免密登录到节点主机
安装Ansible
注:Ansible只需要安装在宿主机上,节点主机无需安装Ansible,只需配置宿主机到节点主机的免密登录
apt-get install software-properties-common
apt-add-repository ppa:ansible/ansible
apt-get update
apt-get install ansible
安装完成后,可以通过--version
检查是否安装成功
$ ansible --version
ansible 2.9.15
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.17 (default, Sep 30 2020, 13:38:04) [GCC 7.5.0]
仅在宿主机安装节点时,无需操作下文的Ansible host配置和免密配置,直接进入配置Docker章节,并在部署节点时,添加主机的IP为127.0.0.1
配置Ansible host_key_checking
配置Ansible的Host key checking,将自动确认连接到远程主机
免密登录配置
在节点管理台进行可视化部署时,节点管理(WeBASE-Node-Manager)服务会为每个节点生成相应的配置文件,然后通过Ansible的免密登录远程操作,在远程的节点主机中执行系统命令来操作节点。
下面介绍配置免密登录的各个步骤
- 配置 WeBASE-Node-Manager 主机到其它节点主机的 SSH 免密登录;
- 配置Ansible的hosts列表并配置免密登录私钥路径
- 注意免密登录的账号sudo权限,否则会造成Docker服务启动、检测端口占用失败;
- 如果免密账号为非 root 账号,保证账号有 sudo 免密 权限,即使用 sudo 执行命令时,不需要输入密码;参考本章节的[sudo账号配置]
免密登录配置方法
如果 WeBASE-Node-Manager 所在主机已经生成过秘钥对,建议使用命令 ssh-keygen -t rsa -m PEM 重新生成
登录 WeBASE-Node-Manager 所在主机:
ssh root@[IP]
检查 ~/.ssh/ 目录是否已经存在 id_rsa 私钥文件和对应的 id_rsa.pub 公钥文件。如果存在,备份现有私钥对
mv ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.bak
Copy to clipboard
执行命令 ssh-keygen -t rsa -m PEM,然后直接两次回车即可生成(提示输入密码时,直接回车)
ssh-keygen -t rsa -m PEM
Copy to clipboard
将公钥文件上传到需要免密登录的主机(替换 [IP] 为节点主机的 IP 地址),然后输入远程主机的登录密码
ssh-copy-id -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa.pub root@[IP]
Copy to clipboard
输出结果出现 Number of key(s) added: 1 结果,表示免密登录配置成功
检查从部署 WeBASE-Node-Manager 服务的主机是否能成功免密登录部署节点的主机(替换 [IP] 为主机的 IP 地址)
ssh -o StrictHostKeyChecking=no root@[IP]
Copy to clipboard
切记妥善保管免密登录的私钥,否则当前主机与ssh免密登录的主机均会被控制
此处配置宿主机免密登录到节点主机完成后,记住宿主机中id_rsa私钥的路径,下一步进行Ansible中hosts的免密配置
配置Ansible Hosts与免密登录
在/etc/ansible/hosts
文件中添加IP组webase
,并配置节点主机的IP、免密登录账号和私钥路径、SSH端口。
注:若后续需要添加新的主机,需要将新主机的IP添加到此处
添加以下内容:此处假设节点机IP为127.0.0.1,免密登录账户为root,且id_rsa
免密私钥的路径为/root/.ssh/id_rsa
,ssh端口使用22端口,添加名为webase
的IP组
vi /etc/ansible/hosts
···
[webase]
127.0.0.1 ansible_ssh_private_key_file=/root/.ssh/id_rsa ansible_ssh_user=root ansible_ssh_port=22
{your_host_ip} ansible_ssh_private_key_file={ssh_private_key} ansible_ssh_user={ssh_user} ansible_ssh_port={ssh_port}
测试Ansible
执行Ansible的--list-hosts
命令查看是否已添加成功
ansible webase --list-hosts
hosts (2):
XXX.XXX.XXX.1
XXX.XXX.XXX.2
执行Ansible的ping
命令,检测添加到hosts中各个节点主机IP能否被访问,免密配置是否已生效
- 若出现
IP | SUCCESS
的则代表该IP可连通 - 如果出现
FAILED
代表该IP无法连接,需要根据上文的免密登录配置进行ssh -o StrictHostKeyChecking=no root@[IP]
检测
对ansible中的webase ip组进行ping检测
ansible webase -m ping
xxx.xxx.xxx.1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
xxx.xxx.xxx.2 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
重新登入后,执行docker ps
如有输出,未报错Permission Denied则代表配置成功
拉取 Docker 镜像
在WeBASE v1.4.3版本后,可视化部署支持自动从CDN拉取镜像,无需手动拉取
若需要手动配置镜像,可以通过以下方法配置
可视化部署需要使用FISCO BCOS + WeBASE-Front
组成的节点与前置Docker镜像,并提供拉取Docker镜像的三种方式(推荐通过CDN加速服务拉取):
- 通过可视化部署页面,自动从CDN拉取镜像压缩包并加载镜像(推荐),需要确保wget命令能正常使用
- 在节点主机上手动通过WeBASE CDN服务下载镜像压缩包后,通过
docker load
命令安装镜像 - 在节点主机上手动通过
docker pull
命令直接从DockerHub拉取镜像
可视化自动部署功能支持自动从 Docker 仓库拉取镜像,仅通过页面点击就可以完成Docker拉取。但是由于DockerHub的网络原因,拉取镜像的速度较慢,耗时过长,容易导致拉取镜像失败,页面的可视化部署操作失败。 因此,为了保证部署过程顺利和快速完成,可在执行可视化部署前,手动拉取镜像,并将镜像上传到每个需要部署节点服务的主机。
拉取镜像的方法,请参考下文常见问题中:拉取 Docker 镜像
拉取部署脚本
获取部署安装包:
wget https://github.com/WeBankFinTech/WeBASELargeFiles/releases/download/v1.5.5/webase-deploy.zip
# 若网络问题导致长时间无法下载,可尝试以下命令
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-deploy.zip
解压安装包:
unzip webase-deploy.zip
进入目录:
cd webase-deploy
注意:
- 配置可视化部署配置文件时,选择
visual-deploy.properties
进行配置 - 选择部署方式时,选择 可视化部署 方式,即执行
deploy.py
脚本时,执行python3 deploy.py installWeBASE
修改 visual-deploy.properties
文件。
python3 deploy.py installWeBASE
...
============================================================
_ _ ______ ___ _____ _____
| | | | | ___ \/ _ \/ ___| ___|
| | | | ___| |_/ / /_\ \ `--.| |__
| |/\| |/ _ | ___ | _ |`--. | __|
\ /\ | __| |_/ | | | /\__/ | |___
\/ \/ \___\____/\_| |_\____/\____/
...
...
============================================================
============== deploy has completed ==============
============================================================
============== webase-web version v1.5.0 ========
============== webase-node-mgr version v1.5.0 ========
============== webase-sign version v1.5.0 ========
============================================================
可视化部署节点
在部署完依赖服务后,使用浏览器,访问节点管理平台页面:
# 默认端口 5000
http://{deployIP}:{webPort}
(一)添加主机
(二 )部署
添加的主机状态都为“初始化成功”后,点击“部署”按钮后,将自动完成以下操作
根据填入的节点信息自动生成链配置与证书
通过SCP将节点与前置的配置文件、证书传输到各个主机的指定目录下
若需要添加新的主机时,填入主机的IP与部署节点的目录
新增节点
节点操作
节点操作,包括:节点的启停、节点共识类型切换、删除节点
节点的类型切换:共识,观察和游离
在可视化部署中,变更节点为游离节点时,该群组内,至少仍有两个共识节点
变更节点类型,需要发送交易,请先在私钥管理 中 添加私钥账号;