HZERO PaaS平台组装笔记(十)BPaaS流程平台安装
本文是H-ZERO 安装部署笔记,出于学习研究目的,刚开始按照开放平台->社区与合作伙伴->文档中心- 《HZERO 轻量版》技术文档进行部署实践,选择快速开始->微服务版进行安装; 但作为初学者, 水平太低, 由于轻量版合并了多个微服务,要改各种配置,过程中遇到多个困难,没有搞定🙂, 后来按照 开放平台->社区与合作伙伴->文档中心- 《HZERO汉得企业级PaaS平台》 技术文档进行 标准版(没有合并微服务的版本) 安装部署实践 ,安装部署成功了。本系列文章记录了这个过程。
需要说明的是,如果不是出于学习研究目的,是不需要这么麻烦的,技术中心有发发行版,可以一键安装,一小时不到可以全部安装完成。
本文是出于学习研究目的,按照技术文档从制品库里面拿各种零件进行组装,所以过程会比较繁琐,供学习研究参考。
实践系统环境:windows自带的Linux虚拟机 WSL ,linux版本在微软应用商店选择 Ubuntu22.04
十、BPaaS 流程平台安装
在/d02 目录下新建目录hzero-bpaas
在hzero 1.12.1父组件下选配工作流服务组件:
下载后放入/d02/hzero-bpaas目录下:
这注意,种子数据初始化工程resource-package.zip 并没有拷贝过来,因为工作流和低代码平台的种子数据初始化工程都没有更新到选配平台,需要直接从猪齿鱼git仓库拉下来;
首先确保自己已经在猪齿鱼git仓库有账号(汉得系员工的账号会自动同步到猪齿鱼git仓库)
关于工作流服务的种子数据如何安装,在开放平台文档中并未明确提及,只是在从1.19升级到1.20中有提及,具体参考:开放平台/社区与合作伙伴/文档中心/班翎流程平台WittyFlow,选择:1.20.0Release
在文档目录:班翎工作流服务/组件列表/班翎工作流组件WittyFlow/升级指南/升级到1.20/流程组件/从1.19升级到1.20
登录猪齿鱼的git库:https://code.choerodon.com.cn/hzero-hzero-cust/hwkf-resource/-/tree/1.20-1.12.RELEASE?ref_type=heads
git clone -b 1.20-1.12.RELEASE git@code.choerodon.com.cn:hzero-hzero-cust/hwkf-resource.git
拉到本地后,更改application.yml文件,在数据库链接rul中添加:allowPublicKeyRetrieval=true
然后运行 启动
先更新数据库,再导入数据(因为我们是新安装,不是升级,第2步不需要),完成后在数据库中查看一下
1、启动workflow流程服务:
从选配下来的workflow工程服务的POM文件看,其workflow的snap-shop版本还是1.9的,说明workflow团队尚未完成对hzero 1.12的适配,至少在选配平台上尚未完成这项工作,所以我们需要更改POM文件内容,具体参考:开放平台/社区与合作伙伴/文档中心/班翎流程平台WittyFlow,选择:1.20.0Release
在文档目录:班翎工作流服务/组件列表/班翎工作流组件WittyFlow/升级指南/升级到1.20/流程组件/底座兼容Hzero1.12 目录下有具体的POM文件内容,替换一下即可。
然后就是常规处理步骤:
1.1 编辑服务的application.yml文件在数据库链接rul中添加:allowPublicKeyRetrieval=true
server-uri改一下
orchestration:
server-uri: ${HZERO_ORCHESTRATION_SERVER_URI:http://gateway.hzero.com.cn}
1.2 编辑 服务的bootstrap.yml 文件,在 spring.cloud层级下添加网卡选择:
inetutils:
# 设置首选网卡,对于本机有多块网卡的情况,可以设置首选网卡来注册
# 指定忽略的网卡
ignored-interfaces[0]: lo
# 选择注册的网段
preferred-networks[0]: 172.18.14.48
1.3 把原来服务模块下的run.sh 和stop.sh都拷贝过来;
编辑run.sh ,把端口号改成跟服务的 bootstrap.yml文件中定义的端口号一致,把 AGENT 变量改成
-javaagent:/d02/hzero/project/ps-license/licenseAgent/license-agent111.jar
1.4 由于apaas-common依赖中使用了反射机制,去访问内部类中的方法,所以启动项目时需要添加这行命令
–add-opens java.base/java.lang=ALL-UNNAMED –add-opens java.base/java.util=ALL-UNNAMED –add-opens java.base/java.util.concurrent=ALL-UNNAMED
执行 sh run.sh
构建失败,应该是1.20.0-1.12.RELEASE的工作流版本还没推到制品库
关闭中间件,关机,周一再弄。
systemctl stop mysql redis nginx mongod minio
周二听说工作流团队已经把1.20.0-1.12.RELEASE版本推到制品库了,再次执行sh run.sh,这次构建成功了:
不过启动服务失败了:
按照开放平台工作流部署文档要求改:
修改启动类 !!!
- 修改启动类名称改为HzeroWorkflowApplication
- 启动类添加注解**@EnableHzeroWorkflow**
开放平台文档这部分内容是错误的,不应该改,选配完成就保持是对的。
按照开放平台工作流升级文档《升级到1.20/流程组件/底座兼容Hzero1.12》修改application.yml 和 bootstrap.yml 然后再运行run.sh ,依然是可以构建,但服务启动失败。错误日志看是却少类文件,后面跟工作流团队小伙伴一起调整了几次POM均不成功,后来干脆把工作流团队小伙伴自己构建工作流服务的POM 拷贝过来稍加修改,启动依然失败,表象是license服务调用有问题,但看到一个out of Memory的提示,于是把启动内存从300M调整到一个G就启动成功了;
实际工作中,我们不可能用研发团队自己的POM,因为里面依赖项非常多,既然我们构建自己组件的时候已经依赖他们的组件,就不需要在POM文件里面再重复引入,于是我们在这个能正常启动的POM上进行删除内容,直到能正常启动服务且显式依赖最少,最终得到一个最简的POM
<?xml version=”1.0″ encoding=”UTF-8″?>
<project xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.hzero</groupId>
<artifactId>hzero-parent</artifactId>
<version>1.12.1.RELEASE</version>
</parent>
<groupId>org.hzero</groupId>
<artifactId>ps-workflow-snapshot</artifactId>
<version>1.20.0-1.12.RELEASE</version>
<name>ps-workflow</name>
<dependencies>
<dependency>
<groupId>org.hzero</groupId>
<artifactId>hzero-workflow</artifactId>
<version>1.20.0-1.12.RELEASE</version>
</dependency>
<!– spring-boot 这一段去掉,服务能起来,但在注册中心就看不到这个服务 因为 hzero-workflow对该组件的依赖选项 option=true ,意味着只对他自己有效,不会传递给依赖他的组件 –>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<optional>true</optional>
</dependency>
<!– db driver 这段去掉就报错,服务起不来 因为 hzero-workflow对该组件的依赖选项 option=true ,意味着只对他自己有效,不会传递给依赖他的组件 –>
<!– Spring Boot 启动时会自动配置数据源 如果找不到 MySQL 驱动类,导致数据源初始化失败,最终服务启动失败。–>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<repositories>
<repository>
<id>HzeroRelease</id>
<name>Hzero-Release Repository</name>
<url>http://nexus.saas.hand-china.com/content/repositories/Hzero-Release/</url>
</repository>
<repository>
<id>HskpRelease</id>
<name>Hskp-Release Repository</name>
<url>http://nexus.saas.hand-china.com/content/repositories/hskp-release/</url>
</repository>
<repository>
<id>HzeroSnapshot</id>
<name>Hzero-Snapshot Repository</name>
<url>http://nexus.saas.hand-china.com/content/repositories/Hzero-Snapshot/</url>
</repository>
</repositories>
</project>
构建Wrokflow的前端工程:
上次从产品组那里拷贝过来的Dist文件没有工作流的前端模块,所以需要单独构建;
由于构建前端工程的过程中至少需要8G剩余内存,所以如果原来已经启动了很多服务,需要把服务先停掉,等我们构建完成之后再重新启动,先停掉所有服务:
root@desktop-jacksen:/d02# sh service-stop-all.sh
1、把原来dist目录拷贝到当前选配工程的front目录下(因为要合并dist/packages/microConfig.json 这个文件每个模块有对应的hash值,没法直接手动改,必须靠程序去合并更改)
cp -rf /d02/hzero/front/dist /d02/hzero-bpaas/front
2、查看当前当前选配工程的front目录下的package.json文件,hzero-front-hwkf 的版本是1.9.0 ,依赖的hzero-front 是1.12.0
在当前当前选配工程的front目录下执行(这一步是把最新的版本拉到node_moudules目录下):
yarn
之后运行npx umi hzero-info 查看当前yarn拉下来的各模块版本:
[System Information]
OS Version : linux – 5.15.167.4-microsoft-standard-WSL2
NodeJS Version : 20.19.3
YARN Version : 1.22.22
[Dependence Information]
@hzerojs/preset-hzero version : 1.3.9
choerodon-ui version : 1.6.6
hzero-front version : 1.12.2
umi version : 3.5.43
[Standard Module Information]
hzero-front-hwkf version : 1.19.1
3、在当前选配工程的front目录下执行:
yarn run build:ms hzero-front-hwkf(这会单独打包这个子模块,并往dist目录下的microConfig.json写拼接内容)
编译失败 , 报了一堆缺文件的错误;考虑到上次单独编译iam 和接口平台是成功的,那么我考虑是否在上次那个工程中把hwkf模块加上,在那边去构建?
于是我们到 /d02/hzero/front/front目录下在package.jason文件中加上hwkf模块:
再次执行构建命令:
cd /d02/hzero/front/front
root@desktop-jacksen:/d02/hzero/front/front# yarn
root@desktop-jacksen:/d02/hzero/front/front# yarn run build:ms hzero-front-hwkf
这次构建依然失败,不过比上次构建错误少很多,上次是16个错误,这次只有3个错误,而且这三个错误都是引用了apaas中的组件,缺少这些组件引起的,估计这是apaas前端新增的几个组件,我如果重新构建下apaas的前端,也许就有了。
在package.jason 中添加apaas模块:
“hzero-front-apaas”: “~2.9.1-beta.5”,
再次 yarn
再次 npx umi hzero-info 查看新版本
hzero-front-apaas version : 2.9.1-beta.8
再次build
yarn run build:ms hzero-front-hwkf
这次只有一个错误了:
在package.jason 中把hzero-front-hlod加上,再次yarn 把库拉下来,然后再次build hwkf
这次成功了:
4、再把新的dist目录拷贝到原来位置,更改目录权限,再执行run-front.sh 替换字符串
cp -rf /d02/hzero/front/front/dist /d02/hzero/front/
sudo chown -R www-data:www-data /d02/hzero/front/dist
sudo chmod -R 755 /d02/hzero/front/dist
cd /d02/hzero/front/
./run-front.sh
- 然后再重启所有后台服务:
cd /d02/hzero/project
sh start_all.sh
测试: 工作流界面可以打开,不过报授权不够的错误:
看授权信息,有workflow的授权,但版本是1.19.* 的,而我们用的版本已经到了1.20.0-1.12.RELEASE,所以重新申请授权,更换授权信息就可以了。
2、WorkForm服务
流程团队说,这个服务已经不维护了,也不需要安装。
关于作者:
| 昵称:Jack.shang 档案信息:jack.shang 程序员->项目经理->技术总监->项目总监->部门总监->事业部总经理->子公司总经理->集团产品运营支持 联系方式:你可以通过syfvb@hotmail.com联系作者 点击查看Jack.shang发表过的所有文章... 本文永久链接: http://blog.retailsolution.cn/archives/4642 |
对本文的评价:
