【适合小白】区块链之我用可视化的方式部署Webase

前言

本小编在今年的四月底参加了一个区块链的省技能大赛,并在此基于我对官网教程的理解下,分享我的操作方法。

可视化部署是指通过 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+)。

系统环境

硬件配置

使用可视化部署搭建一个 至少2 节点 的区块链服务,WeBASE(WeBASE-Node-Manager + WeBASE-Sign)至少配置 1G 空闲内存(用于节点管理服务与签名服务)、每个节点+前置的镜像配置至少2G空闲内存(CPU内核数与节点数正相关,如4核可配置4节点),在进行可视化部署时会进行主机的可用内存检测。

【适合小白】区块链之我用可视化的方式部署Webase_第1张图片

【适合小白】区块链之我用可视化的方式部署Webase_第2张图片

【适合小白】区块链之我用可视化的方式部署Webase_第3张图片在端口这一块本小编插一句:在进行整一个部署操作的时候,一定要把有使用到的端口号防火墙给关掉,相关命令如下:

Centos

防火墙相关命令

1、查看防火墙状态 : systemctl status firewalld.service

注:active是绿的running表示防火墙开启

2、关闭防火墙 :systemctl stop firewalld.service

3、开机禁用防火墙自启命令 :systemctl disable firewalld.service

4、启动防火墙 :systemctl start firewalld.service

5、防火墙随系统开启启动 : systemctl enable firewalld.service

6、重启防火墙 : firewall-cmd --reload

注:为了安全考虑,一般我们只会选择关闭指定的端口号,在这里我们为了方便练习,通过命令3直接把防火墙关闭了

ubuntu

1、查看防火墙状态:sudo ufw status

2、打开防火墙:sudo ufw enable

3、关闭防火墙:sudo ufw disable


 

系统依赖

配置系统依赖分成宿主机(Node-Manager所在主机)与节点主机(节点所在主机)两种:

  • 宿主机:安装WeBASE-Node-Manager的主机,配置Ansible、配置Ansible免密登录节点机
  • 节点主机:用于安装节点的主机,配置docker及docker用户组、配置Ansible用户的sudo权限、安装FISCO BOCS节点依赖

注:宿主机也需要安装节点时,则需要同时配置(在我这次的比赛中是没有这个要求的)

配置Ansible(本文档从这里便开始配置一些偏操作性的配置了)

Ansible配置包括以下三步:

  • 宿主机安装Ansible
    • 仅在宿主机安装节点时,则仅需安装Ansible,无需完成下面两步host与免密配置
  • 配置Ansible host列表
  • 配置Ansible免密登录到节点主机

安装Ansible

:Ansible只需要安装在宿主机上,节点主机无需安装Ansible,只需配置宿主机到节点主机的免密登录

Centos

yum install epel-release -y
yum install ansible –y

Ubuntu

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,将自动确认连接到远程主机

vi /etc/ansible/ansible.cfg

# 找到host_key_checking选项
···
host_key_checking = False

免密登录配置

在节点管理台进行可视化部署时,节点管理(WeBASE-Node-Manager)服务会为每个节点生成相应的配置文件,然后通过Ansible的免密登录远程操作,在远程的节点主机中执行系统命令来操作节点。

下面介绍配置免密登录的各个步骤

重要

  1. 配置 WeBASE-Node-Manager 主机到其它节点主机的 SSH 免密登录;
  2. 配置Ansible的hosts列表并配置免密登录私钥路径
  3. 注意免密登录的账号sudo权限,否则会造成Docker服务启动、检测端口占用失败;
  4. 如果免密账号为非 root 账号,保证账号有 sudo 免密 权限,即使用 sudo 执行命令时,不需要输入密码;参考本章节的[sudo账号配置]

登录 WeBASE-Node-Manager 所在主机:

重要

  1. 如果 WeBASE-Node-Manager 所在主机已经生成过秘钥对,建议使用命令 ssh-keygen -t rsa -m PEM 重新生成;
ssh root@[IP]

检查 ~/.ssh/ 目录是否已经存在 id_rsa 私钥文件和对应的 id_rsa.pub 公钥文件。如果存在,备份现有私钥对

mv ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
mv ~/.ssh/id_rsa.pub 

你可能感兴趣的:(运维,区块链)