GAF安装部署指南-微服务架构下的云原生部署

从上一篇文章《GAF简介-基于SuperMap GIS基础软件的GIS应用框架》我们知道SuperMap GAF分为社区版和企业版,本篇文章主要介绍如何安装部署GAF,帮助个人用户和企业用户快速上手熟悉相关操作。

一、安装包地址

①企业版

产品包已上传百度网盘,点击下载,提取码:gaf3

企业版GAF分为单机部署(单独部署)和基于iManager K8S(GAF for imanager)部署两个部署版本,两种部署模式均需进行相关许可配置操作。

②社区版

码云Gitee Relase 。

社区版GAF只有单机linux部署版本。单机linux部署完成后,没有许可配置步骤。

  • 注意:企业版的单机部署模式与社区版的单机部署模式高度相似,因此后文的安装步骤主要按照单机linux部署模式和基于iManager K8S部署两种模式详细展开描述,请用户注意区分。

二、安装步骤

2.1 模式一:单机linux部署

2.1.1 系统配置要求

①硬件

最低硬件要求:

  • 处理器:2.6 GHz 或以上
  • 内存:8 GB
  • 硬盘:20 GB
  • 网络适配器:系统安装有网络适配器

硬件推荐配置:

  • 处理器:8核,3.6 GHz 或以上
  • 内存:16 GB 或以上
  • 硬盘:80 GB 或以上
  • 网络适配器:200 M 或以上网络适配器

②软件

操作系统:

Linux操作系统(x86_64,x64,AMD64) :

  • CentOS 7.X

其他软件要求

  • docker (版本 20.xx.xx 及以上)
  • docker-compose (版本 1.29.x 及以上)

2.1.2 安装包目录结构和配置

├── base-data            包含所有数据库表结构和初始化数据
├── bin                  包含一些部署需要的函数
├── conf                 其下的GAF_ENV_CONFIG.env文件为配置文件,包括一些内存限制 数据库账号配置
├── config               基础配置文件
├── data                 一些中间件所需的数据
├── deploy.sh            部署脚本,包含一些部署命令, 通过执行命令 ./deloy.sh
├── docker-compose.yml   docker-compose部署yml定义
├── jobs                 部署过程中一次性任务脚本

其中,config为基础配置文件,内容如下:

#===========[基础配置]===========# 容器挂载卷在主机的目录路径
GAF_VOL_DIR=/opt/SuperMap/GAF
# 单机容器环境的内网IP地址 (注意,若未修改,部署时自动修改为主机内网ip)
HOSTIP=localhost
# 数据库初始脚本【相对路径】
GAF_BASE_DATA_PATH=base-data#===========[安装包部署配置]===========# DOCKER镜像地址
GAF_REGISTRY=registry.cn-hangzhou.aliyuncs.com/supermap-gaf/
# DOCKER镜像TAG地址
GAF_REGISTRY_TAG=3.0.pro-beta

其中,conf目录下的GAF_ENV_CONFIG.env也是配置文件,包括Java启动参数、容器内存限制、数据库配置、SMTP邮箱设置等配置。

#Java启动参数
JAVA_OPTS="-Xms256m -Xmx448m -Djava.security.egd=file:/dev/./urandom"
#核心微服务组件容器内存限制
CORE_MEMORY_LIMIT=1024M
#部分非核心微服务组件容器内存限制
MEMORY_LIMIT=228M
#系统配置
GAF_ENV_INIT_USERNAME=sys_admin
GAF_ENV_INIT_PASSWORD=123456
#数据库配置
GAF_ENV_DATASOURCE_DBNAME=gaf
GAF_ENV_DATASOURCE_URL=jdbc:postgresql://gaf-postgres:5432/gaf
GAF_ENV_DATASOURCE_DRIVER=org.postgresql.Driver
GAF_ENV_DATASOURCE_PASSWORD=123456
GAF_ENV_DATASOURCE_USERNAME=admin
#许可
GAF_ENV_BSLICENSE_SERVER=gaf-bslicense-server:9183
GAF_ENV_VERIFY=eNoNysEBwCAIA8CVCIjBcRBh/xHaex/tuLca5AISZFRQCuLr5sml0qQjxImTCaIu9wb9vIHJhhF9Kn2YFbopqauvjiFaM0b7D/p0LZnO0QlYPX1b9/RS1ujx3bchw3vCUDNPjN5v1wfX6iql
GAF_ENV_VERIFYFORCLIENT=eNoVjtERRUEExVrCclAOa/VfwrvvNzOZ5JrCyG/VZR0JDjSZil4cuzKiiLRzndqjn5Ygd/5sZAN5LU6u4DSR0TERSB9foJpd+yBJiXiOvQBpnXCnz1TZTXvgcVZuvQUq8xp5Zl0DSuV4tDAO7tDI6Y5YJsh+najX+XXsu1AGidQ8GoDCPLcieHt+RIU6Eg==
#工作流配置
GAF_ENV_GBPM_DATASOURCE_URL=jdbc:postgresql://gaf-postgres:5432/gaf-bpm
#seata配置
GAF_ENV_SEATA_DATASOURCE_URL=jdbc:postgresql://gaf-postgres:5432/gaf-seata
#storage配置
GAF_ENV_STORAGE_DATASOURCE_URL=jdbc:postgresql://gaf-postgres:5432/gaf-storage
#Redis配置
GAF_ENV_REDIS_HOST=gaf-redis-server
GAF_ENV_REDIS_PORT=6379
GAF_ENV_REDIS_PASSWORD=
#链路追踪服务配置
GAF_ENV_ZIPKIN_URL=http://gaf-zipkin:9411
#日志收集服务地址
GAF_ENV_FLUENTD_PORT=24224
GAF_ENV_FLUENTD_HOST=gaf-fluentd-es
#Elastic服务配置
GAF_ENV_ES_HOST=gaf-elasticsearch
GAF_ENV_ES_PORT=9200
#注册中心服务配置
EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE=http://gaf-microservice-rigister:8080/eureka/
#MongoDB数据库配置
GAF_ENV_MONGO_AUTH_DB=admin
GAF_ENV_MONGO_DB=gaf
GAF_ENV_MONGO_HOST=gaf-mongodb
GAF_ENV_MONGO_PASSWORD=123456
GAF_ENV_MONGO_PORT=27017
GAF_ENV_MONGO_USERNAME=admin
#MINIO账号密码
GAF_ENV_MINIO_USERNAME=admin
GAF_ENV_MINIO_PASSWORD=admin123456
#GAF访问地址
GAF_HOST=http://${HOSTIP}
#SMTP邮箱设置 如果有,可设置,用于系统邮件发送。
GAF_ENV_MAIL_HOST=
GAF_ENV_MAIL_PORT=
GAF_ENV_MAIL_USERNAME=
GAF_ENV_MAIL_PASSWORD=
#MQ配置
GAF_ENV_MQ_HOST=gaf-mq
GAF_ENV_MQ_PORT=5672
GAF_ENV_MQ_USERNAME=guest
GAF_ENV_MQ_PASSWORD=guest
#IPORTAL OAUTH
GAF_IPORTAL_PATH=
GAF_IPORTAL_CONFIG_ID=222

2.1.3 部署前准备

Linux CentOS7.5

Docker

安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable docker
systemctl start docker

验证:

docker ps

docker-compose

安装:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 或者 sudo curl -L "http://gaf.net.cn/download/gaf/software-package/docker-compose" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

验证:

docker-compose --version

2.1.4 执行脚本命令部署

在安装包下执行./deploy.sh获取帮助信息,如下

Usage:GAF应用部署脚本用法: ./deploy.sh [COMMANDS] [OPTIONS]COMMANDS命令:all                             部署GAF应用iserver                         部署iserver并挂载GAF存储remove                          删除GAF应用create                          部署GAF单个GAF应用recreate                        重新线上拉取镜像并部署单个GAF应用stop                            停止GAF应用容器start                           启动GAF应用容器restart                         重启GAF应用容器OPTIONS选项:-v                              执行删除命令时,如果存在持久化数据即删除,volumeExample示例:./deploy.sh all                          部署GAF应用./deploy.sh remove && ./deploy.sh all             删除所有已部署的GAF应用,不删除数据,并重新以老数据部署./deploy.sh remove -v && ./deploy.sh all          删除所有已部署的GAF应用并删除数据,完全重新部署./deploy.sh remove -v <service>          删除指定的已部署GAF应用,并删除对应数据./deploy.sh create <service>             部署指定的GAF应用./deploy.sh recreate <service>           重新线上拉取镜像并部署单个GAF应用./deploy.sh stop <service>               停止已部署的GAF应用容器./deploy.sh start <service>              启动指定的GAF应用容器

使用./deploy.sh all 命令部署GAF。

使用./deploy.sh stop停止容器,使用./deploy.sh start 启动容器。

2.2 基于iManager K8S部署

2.2.1 准备 iManager K8S 部署

参考iManager K8S帮助文档,https://help.supermap.com/iManager_K8S/1021/zh/guides/getting-started/

注意,需要为GAF预留16GB的内存

2.2.2 部署配置

获取部署文件GAF.yml , 其中有如下配置,与单机linux部署包配置相似。

  #Java启动参数JAVA_OPTS: "-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom"#系统配置GAF_ENV_INIT_USERNAME: sys_adminGAF_ENV_INIT_PASSWORD: 123456#许可GAF_ENV_BSLICENSE_SERVER: bslicense-server.supermap:9183GAF_ENV_VERIFY: eNoNysEBwCAIA8CVCIjBcRBh/xHaex/tuLca5AISZFRQCuLr5sml0qQjxImTCaIu9wb9vIHJhhF9Kn2YFbopqauvjiFaM0b7D/p0LZnO0QlYPX1b9/RS1ujx3bchw3vCUDNPjN5v1wfX6iqlGAF_ENV_VERIFYFORCLIENT: eNoNzMcRADEIBMGUMMKFg2CVfwh336maHjtuFNM9fFaS0y/ZkTOuNrLzht5dK4eyIkS0a7Xy9pFr8BecWWwEefH04o1z6K2u/y2hH/LM9WWRohZwVPvxxssN/iufZvVgdEcTbaET2jnWrQeWXRdM5YZe2YsZEUAPjR1zFSx0Ul2Mi3D7MYUL6Oc/3P09Xw==#数据库配置GAF_ENV_DATASOURCE_DBNAME: gafGAF_ENV_DATASOURCE_URL: jdbc:postgresql://gaf-postgres:5432/gafGAF_ENV_DATASOURCE_DRIVER: org.postgresql.DriverGAF_ENV_DATASOURCE_PASSWORD: 123456GAF_ENV_DATASOURCE_USERNAME: admin#工作流配置GAF_ENV_GBPM_DATASOURCE_URL: jdbc:postgresql://gaf-postgres:5432/gaf-bpm#seata配置GAF_ENV_SEATA_DATASOURCE_URL: jdbc:postgresql://gaf-postgres:5432/gaf-seata#storage配置GAF_ENV_STORAGE_DATASOURCE_URL: jdbc:postgresql://gaf-postgres:5432/gaf-storage#Redis配置GAF_ENV_REDIS_HOST: gaf-redis-serverGAF_ENV_REDIS_PORT: 6379GAF_ENV_REDIS_PASSWORD:#链路追踪服务配置GAF_ENV_ZIPKIN_URL: http://gaf-zipkin:9411#日志收集服务地址GAF_ENV_FLUENTD_PORT: 24224GAF_ENV_FLUENTD_HOST: fluentd-es.supermap#Elastic服务配置GAF_ENV_ES_HOST: elasticsearch.supermapGAF_ENV_ES_PORT: 9200#注册中心服务配置EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE: http://gaf-microservice-rigister:8080/eureka/#MongoDB数据库配置GAF_ENV_MONGO_AUTH_DB: adminGAF_ENV_MONGO_DB: gafGAF_ENV_MONGO_HOST: gaf-mongodbGAF_ENV_MONGO_PASSWORD: 123456GAF_ENV_MONGO_PORT: 27017GAF_ENV_MONGO_USERNAME: admin#MINIO账号密码GAF_ENV_MINIO_USERNAME: adminGAF_ENV_MINIO_PASSWORD: admin123456#GAF访问地址,SERVICE_IP会被替代为imanager的服务ipGAF_HOST: http://${SERVICE_IP}:31231HOSTIP: ${SERVICE_IP}#IMGRIMGR_PORT: 31100IMGR_ADMIN_USERNAME: adminIMGR_ADMIN_PASSWORD: adminIMGR_NAMESPACE_GAF: ${NAMESPACE}IMGR_APPSETID_GAF: ${appsetId}IMGR_URI_KEYCLOAK: imanager/dashboard/web/api/keycloakIMGR_URI_TOKEN: realms/imanager/protocol/openid-connect/tokenIMGR_URI_APPSET_LIST: imanager/dashboard/web/api/appsets/listIMGR_URI_USER: imanager/dashboard/web/api/usersIMGR_URI_APPSETS_CREATE: imanager/dashboard/web/api/appsets/createIMGR_URI_APPSETS_K8S-OBJECTS: imanager/dashboard/web/api/appsets/{appsetId}/k8s-objectsIMGR_URI_APPSETS_GRAFANA-URL: imanager/dashboard/web/api/appsets/grafanaUrl?appSetId={appsetId}IMGR_URI_APPSETS: imanager/dashboard/web/api/appsets/{appsetId}#SMTP邮箱设置GAF_ENV_MAIL_HOST:GAF_ENV_MAIL_PORT:GAF_ENV_MAIL_USERNAME:GAF_ENV_MAIL_PASSWORD:#MQ配置GAF_ENV_MQ_HOST: gaf-mqGAF_ENV_MQ_PORT: 5672GAF_ENV_MQ_USERNAME: guestGAF_ENV_MQ_PASSWORD: guest#IPORTAL OAUTHGAF_IPORTAL_PATH:GAF_IPORTAL_CONFIG_ID: 222

2.2.3 模式二:在iManager K8S上部署GAF

①在iManager菜单站点定制下的站点模板,添加编排文件GAF.yml,如下图所示,分组可暂时选择已有的数据库。

②在站点管理创建站点 gaf3beta (可自定义名称),站点类型选择上一步添加的站点模板gaf。点击确定。

③创建后点击站点gaf3beta,如下图所示。

④可查看拓扑图,查看部署情况。若绿点全部亮起,则部署成功。

⑤点击账户按钮获取初始用户密码。

三、许可配置

3.1 许可简介

SuperMap 包含普通许可、云许可、Web 许可等3种许可,这几种许可各有特点,获取和使用方式亦不尽相同,分别适用于不同的应用场景。GAF企业版目前采用Web许可模式。

3.2 Web许可激活

单机部署的企业版GAF,已经部署了Web许可中心,地址是 ${主机ip}:9183。第一次进入,注册账号然后登录,如下图所示。

基于iManager K8S部署的企业版GAF,已经存在了Web许可中心,如下图所示。

许可申请

在Web许可中心中,选择更新激活,下载报告,然后根据提示的操作流程完成许可激活。

注意1:申请试用许可,需要注册 SuperMap Online 账户后即可申请。新申请页面,https://www.supermapol.com/subscription/time-license/object。

注意2:产品系列选择10i(web) , 许可适用产品 可全选, 加密方式选择运行报告(即在Web许可中心下载的*.reportc文件)

注意3:若是试用许可,导入时按套导入即可。

GAF安装部署-微服务架构下的云原生部署相关推荐

  1. 微服务架构下,DLI的部署和运维有何奥秘?

    华为云数据湖探索DLI是支持多模引擎的Serverless大数据计算服务,其很好的实现了Serverless的特性: 1.弱化了存储和计算之间的联系: 2.代码的执行不再需要手动分配资源: 3.按使用 ...

  2. CI Weekly #5 | 微服务架构下的持续部署与交付

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  3. 如何在微服务架构下进行数据设计?

    作者:唐建法 && Mongoing中文社区 来自:http://www.mongoing.com/ 微服务是一个软件架构模式,对微服务的讨论大多集中在容器或其他技术是否能很好的实施微 ...

  4. 微服务架构下分布式事务解决方案——阿里GTS

    1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单.松耦合的服务,这样可以降低开发难度.增强扩展性.便于敏捷开发.当前被越来越多的开发者推崇,很多互联网行业巨头.开源社区等都开始了微服务 ...

  5. 微服务架构下分布式事务解决方案 —— 阿里GTS

    1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单.松耦合的服务,这样可以降低开发难度.增强扩展性.便于敏捷开发.当前被越来越多的开发者推崇,很多互联网行业巨头.开源社区等都开始了微服务 ...

  6. GTS来了!阿里微服务架构下的分布式事务解决方案

    阿里妹导读:分布式事务已经成为微服务落地最大的阻碍,也是非常具有挑战性的一个技术难题. 为此,今天我们邀请阿里高级技术专家于皋,和大家深入探讨微服务架构下,分布式事务的各种解决方案,并重点为大家解读阿 ...

  7. 微服务架构下 CI/CD 如何落地

    本文系云原生应用最佳实践杭州站活动演讲稿整理.杭州站活动邀请了 Apache APISIX 项目 VP 温铭.又拍云平台开发部高级工程师莫红波.蚂蚁金服技术专家王发康.有赞中间件开发工程师张超,分享云 ...

  8. 【转】微服务架构下分布式事务方案

    1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单.松耦合的服务,这样可以降低开发难度.增强扩展性.便于敏捷开发.当前被越来越多的开发者推崇,很多互联网行业巨头.开源社区等都开始了微服务 ...

  9. 进阶必学之微服务架构下分布式事务解决方案,你不知道的58同城

    1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单.松耦合的服务,这样可以降低开发难度.增强扩展性.便于敏捷开发.当前被越来越多的开发者推崇,很多互联网行业巨头.开源社区等都开始了微服务 ...

最新文章

  1. 看 nova-scheduler 如何选择计算节点 - 每天5分钟玩转 OpenStack(27)
  2. hdu 5325 Crazy Bobo dfs
  3. Vista下硬盘管理
  4. 【scala初学】scala 控制 for while match if
  5. 漫步线性代数十九——快速傅里叶变换(上)
  6. python 单一继承定义_Python学习之单继承与多继承
  7. VS.NET(C#)--1.4项目与解决方案
  8. 2018-03-28 Linux学习
  9. hihoCoder week10 后序遍历
  10. linux目录结构和份文件系统
  11. 一维和二维傅里叶变换的图片直观理解
  12. imagej得到灰度图数据_IMAGE J灰度分析
  13. 计算机系微电子专业大学排名,2021年微电子科学与工程专业大学排名
  14. 目标检测结果IOU不同取值的意义(0.5:0.95等)
  15. java编程:对两个分数进行简单的算术运算
  16. Confirming the Buzz about Hornets——2021美赛C题思路及题解
  17. ios系统——先了解iCloud是什么吧
  18. 正则表达式 包含a和b,包含a不包含b,包含a不包含b和
  19. QT QML 与C++ 混合编程
  20. facade设计模式

热门文章

  1. Java实现——Dom4j读写XML文件
  2. python3.x和python2.x唯一区别_Python3.x和Python2.x的区别
  3. 纯js制作图片轮播效果
  4. dparsf是什么_老师,我用DPARSF做Slice Timeing时老报错,请问您是什么原因呢?
  5. 使用KMS批量激活操作系统
  6. 易语言编程乱码解决方案
  7. 计算机文化基础多选题答案,计算机基础多选题集(附答案)
  8. 猿创征文|Hexo+Github搭建完全免费个人博客详细教程
  9. Altium 在PCB重新编号更新到SCH原理图的方法
  10. 在Wordpress网页直接插入bilibili视频方法