.. role:: red :class: red .. role:: blue :class: blue .. role:: green :class: green .. raw:: html ======================== BAAS部署 ======================== .. note:: 安徽省高等学校教育联盟链基于 `Hyperledger Fabric V2.2.x `_ 进行二次开发和部署。 1. 先决条件 ============ 1.1 激活码 -------------- 用户单位需要在“联盟管理系统”申请注册会员,并由联盟管理员“预审”通过后,系统分配激活码,并邮件发送给会员用户邮箱(用户单位注册时填写)。激活码可在机构会员中心中(“机构信息”栏目最下方,点击“查看激活码”),或查看邮件获取。 .. image:: ./_static/images/baas_001.png ------ - 高校申请会员入口:https://edc.ah.edu.cn/mgmt/register/collage - 企业申请会员入口:https://edc.ah.edu.cn/mgmt/register/company 1.2 服务器要求 -------------- 1、BAAS服务系统需要独立服务器部署; 2、CA/TLS-CA服务可以合并放在一台服务器; 3、每个PEER节点建议使用独立的服务器。 建议参考配置:Ubuntu18.04 Server 64位/8核/16G内存/200G硬盘 1.3 网络要求 ------------- - BAAS服务系统服务器需要能访问教育网; `BAAS服务系统服务器需要访问联盟管理系统完成系统激活与消息通讯;` - PEER节点运行的服务器,需要能访问教育网; `PEER节点需要与ORDERER排序节点与其他高校组织的PEER节点通讯。` - PEER节点的端口,能被教育网中的其他高校访问; `PEER节点端口不能被其他高校节点访问,则无法完成交易背书。本事项要求不影响部署环节,但需要在操作链码前需要完成PEER节点端口的映射,其他单位才能通过PEER端口访问本单位节点。` - BAAS服务系统服务器与CA、TLS-CA服务器,Peer节点服务器间要能相互通讯; `BAAS服务系统需要远程管理CA、TLS-CA以及PEER节点服务器及监控其状态` .. image:: ./_static/images/baas_002.png ------ 2. 环境配置 ============ .. important:: BAAS服务系统服务器,CA、TLS-CA所在服务器以及PEER节点所在服务器均需按本节说明完成 Docker、Docker-Compose的安装和联盟仓库的配置。 主要包括: - Docker安装 - Docker-Compose安装 - 联盟仓库配置 2.1 Docker安装 ------------------ 1. 安装docker .. code-block:: shell curl -sSL https://get.docker.com/ | \ sed s#download.docker.com#mirrors.aliyun.com/docker-ce# | sh 2. 将用户添加到docker组 .. code-block:: shell sudo usermod -aG docker $USER 3. 更新用户组 .. code-block:: shell newgrp docker 2.2 Docker-Compose安装 ----------------------- 1. 下载docker-compose .. code-block:: shell sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 2. 设置权限 .. code-block:: shell sudo chmod +x /usr/local/bin/docker-compose 3. 建立快捷方式 .. code-block:: shell sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 4. 查看版本 .. code-block:: shell docker-compose --version 2.3 联盟仓库配置 ------------------ 1. 下载证书 .. code-block:: shell sudo mkdir -p /etc/docker/certs.d/educhain.ustc.edu.cn:8443/ && \ sudo curl -L "https://edc.ah.edu.cn/mgmt/ca.crt" -o \ /etc/docker/certs.d/educhain.ustc.edu.cn:8443/ca.crt 2. 配置联盟仓库源 .. code-block:: shell sudo curl -L "https://edc.ah.edu.cn/mgmt/daemon.json" -o /etc/docker/daemon.json 3. 重启Docker .. code-block:: shell sudo systemctl daemon-reload && sudo systemctl restart docker 3. 系统安装 =========== 3.1 系统目录 -------------------------------- 建议系统安装在当前用户Home目录下的baas目录,先在用户Home目录下创建baas目录,命令如下: .. code-block:: shell mkdir -p $HOME/baas .. important:: 本节所有命令均在\ ``BAAS服务系统安装目录``\ 下执行。 进入\ ``BAAS服务系统安装目录``\ 命令:\ ``cd $HOME/baas`` 3.2 配置docker-compose.yml -------------------------------- 可通过以下命令下载docker-compose.yml文件, .. code-block:: shell curl -L "https://edc.ah.edu.cn/mgmt/docker-compose.yml" -o $HOME/baas/docker-compose.yml 或在系统安装目录下新建文件名docker-compose.yml并填充以下内容 .. code-block:: shell version: "3" services: nginxphp: image: educhain/baas container_name: baasweb environment: - SERVER_IP= - BAAS_API_PORT=8080 - MYSQL_ROOT_PASSWORD=请填写新密码 ports: - 80:80 - 8080:8080 expose: - 9501 depends_on: - mysql volumes: - ./data/organizations:/www/organizations/:rw - ./data/uploads:/www/api/public/uploads/:rw - ./data/storage:/www/api/storage/data/:rw - ./logs/nginx:/var/log/nginx/:rw - ./logs/php:/var/log/php - ./logs/gf-app:/var/log/gf-app ulimits: nproc: 65535 nofile: soft: 65535 hard: 65535 restart: always cap_add: - SYS_PTRACE networks: default: ipv4_address: 10.0.0.2 mysql: image: educhain/mysql container_name: baasmysql environment: - MYSQL_ROOT_PASSWORD=请填写新密码 ports: - 3306:3306 volumes: - ./data/mysql:/var/lib/mysql/:rw restart: always networks: default: ipv4_address: 10.0.0.5 networks: default: driver: bridge ipam: driver: default config: - subnet: 10.0.0.0/24 修改docker-compose.yml配置: - 将\ ````\ 换成BAAS服务系统所在服务器的IP地址。 - 修改数据库密码。在配置文件中有两处,\ ``MYSQL_ROOT_PASSWORD=请输入新密码``\ ,请确保这两处密码相同。 .. important:: 强烈建议修改数据库密码。数据库密码不少于6位, 必须包含大写字母、小写字母、数字及以下特殊符号(@!%^)之一的组合。 3.3 新建目录 -------------------------------- 复制以下完整命令在终端执行: .. code-block:: shell mkdir -p $HOME/baas/logs/gf-app && \ mkdir -p $HOME/baas/logs/nginx && \ mkdir -p $HOME/baas/logs/php && \ mkdir -p $HOME/baas/data/storage && \ mkdir -p $HOME/baas/data/uploads && \ chown -R 1000:1000 $HOME/baas/logs && \ chown -R 1000:1000 $HOME/baas/data/storage && \ chown -R 1000:1000 $HOME/baas/data/uploads 3.4 启动BAAS服务系统 -------------------------------- 请参阅 :ref:`4. 操作命令`. 启动成功后,即可完成系统的部署,可通过浏览器输入BAAS服务系统所运行服务器的IP地址, 即可访问BAAS服务系统。系统激活请浏览:`BAAS系统激活 `_ .. _4. 操作命令: 4. 操作命令 ================= .. important:: 本节所有命令均在\ ``BAAS服务系统安装目录``\ 下执行。 进入\ ``BAAS服务系统安装目录``\ 命令:\ ``cd $HOME/baas`` 4.1 启动服务 -------------------------------- .. code-block:: shell docker-compose up -d 说明:启动命令将检查镜像,如果不存在则自动从联盟仓库拉取镜像后并运行,启动成功后可通过IP地址访问BAAS服务系统。 4.2 重启服务 -------------------------------- .. code-block:: shell docker-compose restart 4.3 停止服务 -------------------------------- .. code-block:: shell docker-compose down 5. 系统升级 =========== BAAS服务系统升级,将推送至联盟仓库。本地升级需要按以下3个步骤执行: 5.1 停止服务 ---------------- 请参阅 :ref:`4. 操作命令`. 5.2 移除镜像 ---------------- .. code-block:: shell docker rmi educhain/baas:latest 5.3 启动服务 ---------------- 请参阅 :ref:`4. 操作命令`. 6. 数据备份 =========== BAAS服务系统数据库,证书文件等均在BAAS服务系统安装目录下的\ ``data`` \ 目录。 CA、TLS-CA以及PEER节点数据均在其所安装主机的\ ``映射路径``\ 下。 可针对以上目录进行定期备份操作。 7. 系统移除 =========== :red:`注意:系统移除将导致所有数据丢失,请谨慎操作。` 7.1 停止服务 ---------------- 请参阅 :ref:`4. 操作命令`. 7.2 移除镜像 ---------------- .. code-block:: shell docker rmi educhain/baas:latest docker rmi educhain/mysql:latest 7.3 删除安装目录 ---------------- .. code-block:: shell sudo rm -rf $HOME/baas