删除.ssh里的文件:
webase机器
rm -rf ~/.ssh/*
webase-node机器
rm -rf ~/.ssh/*
一、可视化部署概念
可视化部署是指通过 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+)。
二、Ansible的概述
Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。它使用SSH来和节点进行通信。Ansible基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。
Ansible配置包括以下三步:
- 宿主机安装Ansible
- 仅在宿主机安装节点时,则仅需安装Ansible,无需完成下面两步host与免密配置
- 配置Ansible host列表
- 配置Ansible免密登录到节点主机
webase机器:
一、安装Ansible
yum -y install epel-release
yum -y install ansible
验证
ansible --version
配置
vim /etc/ansible/ansible.cfg
# 找到host_key_checking选项,添加
host_key_checking = False
二、.配置Ansible host列表
vim /etc/ansible/hosts
在/etc/ansible/hosts文件中添加IP组webase,并配置节点主机的IP、免密登录账号和私钥路径、SSH端口。添加以上内容:此处假设节点机IP为192.168.141.101,免密登录账户为root,且id_rsa免密私钥的路径为/root/.ssh/id_rsa,ssh端口使用22端口,添加名为webase的IP组
注:若后续需要添加新的主机,需要将新主机的IP添加到此处。
[webase-node]
192.168.190.169 ansible_ssh_private_key_file=/root/.ssh/id_rsa ansible_ssh_user=root ansible_ssh_port=2
三、创建密钥对
ssh-keygen -t rsa -m PEM
四、将公钥文件上传到需要免密登录的主机(替换 [IP] 为节点主机的 IP 地址),然后输入远程主机的登录密码。
ssh-copy-id -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa.pub root@192.168.190.169
五、检查从部署 WeBASE-Node-Manager 服务的主机是否能成功免密登录部署节点的主机(替换 [IP] 为主机的 IP 地址)
ssh -o StrictHostKeyChecking=no root@192.168.190.169
六、执行Ansible的--list-hosts命令查看是否已添加成功
ansible webase-node --list-hosts
七、对ansible中的webase ip组进行ping检测
ansible web-servers -m ping
执行Ansible的ping命令,检测添加到hosts中各个节点主机IP能否被访问,免密配置是否已生效。
- 若出现IP | SUCCESS的则代表该IP可连通
- 如果出现FAILED代表该IP无法连接,需要根据上文的免密登录配置进行ssh -o StrictHostKeyChecking=no root@[IP]检测
- 对ansible中的webase ip组进行ping检测
webase-node机器:
一、安装Ansible
yum -y install epel-release
yum -y install ansible
验证
ansible --version
配置
# 找到host_key_checking选项,添加
host_key_checking = False
二、创建密钥对
ssh-keygen -t rsa -m PEM
三、免密、验证免密。
免密
ssh-copy-id -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa.pub root@192.168.190.168
验证免密
ssh -o StrictHostKeyChecking=no root@192.168.190.168
修改配置文件:
cd fisco/webase-deploy/
vim visual-deploy.properties
脚本文件安装WeBASE
通过installWeBASE命令参数,部署并启动可视化部署的所有服务。同时需要注意以下几点:
- 部署脚本会拉取相关安装包进行部署,需保持网络畅通。
- 首次部署需要下载编译包和初始化数据库,重复部署时可以根据提示不重复操作。部署过程中出现报错时。
- 可根据错误提示进行操作,或根据本文档中的常见问题进行排查不建议使用sudo执行脚本,例如sudo python3 deploy.py installWeBASE(sudo会导致无法获取当前用户的环境变量如JAVA_HOME)。
python3 deploy.py installWeBASE
可视化部署节点:
一、进入webase
python3 deploy.py stallWeBASE
网页浏览器
在部署完依赖服务后,使用浏览器,访问节点管理平台页面:
# 默认端口 5000
http://{deployIP}:{webPort}
初始账户为admin,密码为Abcd1234,初次登录需要修改密码
二、添加主机
添加主机时,需要填入主机的IP与部署节点的目录
- 仅在宿主机(即节点管理服务所在主机)部署节点时,则添加主机必须为127.0.0.1,否则填写公网IP或内网IP需要配置Ansible host
- 添加主机时,将检查该IP是否可以连通,同时将检查该主机的路径是否可访问,并自动创建该目录
三、添加节点信息
节点管理,先点击“新增节点”添加节点信息
- 可以在一台主机中指定节点数量
- 添加多个主机的节点,需要确保填入的各个主机间的P2P端口和前置端口互通,否则将影响节点正常运行
四、检查主机
添加节点信息后,将自动检查一下依赖
- 检查主机的可用内存是否支持当前的节点数
- 检测机器的端口是否已被占用
- 检测Docker服务是否已启用,并通过hello-world的镜像进行测试
检测失败的信息将在操作日志中显示,只有添加的节点信息全部通过才可以开始下一步“初始化”
- 如果提示内存不足(Free memory too low),则可以释放主机内存,一节点至少 1G 可用内存(Free memory)
- 如果提示端口被占用,可根据提示的端口号,在主机释放端口或删除填入的节点信息,修改后重新填入
- 如果提示Docker相关错误,需要到主机确认已安装Docker并已启用,是否已配置Docker组,确保能拉取并运行hello-world镜像
- 部分虚拟机缺少bc依赖(bc command not found),需要手动安装bc (yum -y install bc)
yum -y install bc
五、初始化主机:
点击“初始化”按钮进行主机初始化,将自动完成以下操作,初始化成功后才能进行下一步的部署操作,“初始化”按钮将变成“部署”按钮
- 自动检测并安装相关系统依赖,如
netstat
,wget
等 - 加载节点镜像:根据选中的镜像加载方式进行加载(若手动加载则检测镜像已存在于节点主机)
- 自动加载镜像时,会在节点主机指定目录中创建
download
目录,并下载镜像的tar包保存于此;若已存在同名tar包将不重复下载,直接使用已有tar包(docker-fisco-webase.tar)
- 初始化操作预计在两到三分钟内完成,若网速过慢或不稳定建议通过手动加载镜像方式拉取 若初始化失败,则需要结合操作日志排查上述步骤的错误原因,排除主机中存在的问题后,重新执行检测,初始化操作
六、部署:
添加的主机状态都为“初始化成功”后,点击“部署”按钮后,将自动完成以下操作
- 根据填入的节点信息自动生成链配置与证书
- 通过SCP将节点与前置的配置文件、证书传输到各个主机的指定目录下
- 生成配置与传输配置完成后,将自动进入链初始化页面,届时将自动启动各个主机的节点,此过程预计需要几分钟时间,直到链状态为“运行”
-
若出现启动失败,需要结合报错提示,检查节点主机状态正常,各个节点主机间端口互通,网速过慢或网络丢包严重等等,排查后,点击“删除链”重置当前的链后,重新尝试建链
启动好了之后,刷新一下