耶耶耶耶耶 发表于 2023-3-21 14:45:27

Rainbond PipeLine插件部署与springboot应用部署实践

前言:上一篇介绍额rainbond单机部署+单个节点的k8s环境搭建,本篇介绍rainbond5.12新增的pipeline插件的使用

1、Pipeline插件的安装


[*]安装gitlab与gitlab-runner

Pipeline 应用插件依赖于 GitLab 和 GitLab Runner,需要先部署 GitLab 和 GitLab Runner;如果您已经部署了 GitLab 和 GitLab Runner,可以跳过此步骤。

在团队视图下,点击团队;新建-从应用市场安装

https://img2023.cnblogs.com/blog/248637/202303/248637-20230317223425432-456958555.png
在开源应用商店,搜索gitlab

https://img2023.cnblogs.com/blog/248637/202303/248637-20230317223522179-127362711.png
安装完成后,进入gitlab管理员界面,找到注册runner的token

https://img2023.cnblogs.com/blog/248637/202303/248637-20230317224520797-897760927.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230317224558761-646298151.png
Gitlab-runner部署完成后,进入组件内 -> Web 终端,执行以下命令进行注册

https://img2023.cnblogs.com/blog/248637/202303/248637-20230317224648044-1896074620.png
修改URL,TOKEN,TAG中的内容为自己的 GitLab 地址和 Token以及 Runner Tag,Tag名称随便自定义一个

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320223705868-1217890858.png
参考命令如下:

gitlab-runner register \
    --non-interactive \
    --executor "docker" \
    --docker-image alpine:latest \
    --url "http://80.gr51c6c9.jknqu4l0.e84e34.grapps.cn/" \
    --registration-token "jvgpm_zgZyr7swTKvPY7" \
    --description "docker-runner" \
    --tag-list "xujk-runner" \
    --run-untagged="true" \
    --locked="false" \
    --docker-volumes /var/run/docker.sock:/var/run/docker.sock \
    --docker-volumes /root/.m2/ \
    --docker-privileged="true" \
    --access-level="not_protected" \
    --docker-pull-policy="if-not-present"命令执行成功后,可在gitlab管理界面查看runner信息

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320224035343-1238461930.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320224109973-923691669.png
[*]安装pipeline插件

从应用市场搜索pipeline插件,安装

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320224451369-1011322753.png
安装成功后,修改Pipeline-Backend组件内的环境变量

•        RAINBOND_URL: Rainbond 控制台访问地址,例如:http://192.168.231.138:7070。
•        RAINBOND_TOKEN: Rainbond 控制台的 Token,可以在 右上角用户 -> 个人中心 -> 访问令牌 中获取。
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320224657174-1092601725.png
•        BACKEND_URL: 修改为pipeline插件中pipeline_backend的url地址:http://9090.grce8d7b.zf9ivk3r.e84e34.grapps.cn
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320224910015-1714876955.png
修改完成后,更新或重启组件生效

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320225004336-1171387208.png
进入到 Pipeline 应用内 -> k8s 资源 -> 编辑 rainbond-pipeline,修改 pipeline 资源中的 access_urls 配置,修改为 Pipeline-UI 组件的对外访问地址

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320225129512-1254648649.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320225156876-572726576.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320225229936-290665332.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320225322293-64860850.png
修改完成后,就可以在每个团队视图中看到 流水线 按钮选项了

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320225418240-182426292.png
2、java springboot项目部署实践


[*]代码项目准备,参考项目:https://gitee.com/xujk-27400861/springboot-dubbo.git
[*]在gitlab中,新建导入项目,从gitee码云仓库中拷贝代码

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320225806646-1965252003.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320225937973-1382586821.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320230003290-1924288808.png
[*]在rainbond界面,流水线管理界面中,新建流水线;因为应用服务依赖于流水线

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320230212667-1412878899.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320230324059-2131113711.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320230350755-328021570.png
[*]新建应用服务

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320230605458-627038988.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320230630936-468621587.png
[*]在代码管理面板中,点击构建,编译发布代码

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320230810383-315723093.png
[*]在gitlab管理界面中,可以看到流水线操作状况

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320230912640-1319645900.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320230943021-1557581967.png
[*]在rainbond管理界面中,可以看到springboot1应用中,springboot服务运行更新的状态

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320231131011-1288832348.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320231210847-525806957.png
https://img2023.cnblogs.com/blog/248637/202303/248637-20230320231235245-127222290.png
[*]boot应用是通过镜像来构建的,我们可以自定义api方式,配置rainbond自动构建

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320231615311-1207877384.png
3、springbootapp1流水线相关步骤说明


[*]代码构建步骤:

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320231729402-193813089.png
[*]镜像制作步骤:

https://img2023.cnblogs.com/blog/248637/202303/248637-20230320231901652-1765562780.png
参考代码:

cp ${package_path}/target/${jar_name}.jar app.jar
docker login -u ${REPOSITORY_USERNAME} -p ${REPOSITORY_PASSWORD}
docker build -t${ORG}/${modulename}:${DEVOPS_VERSION} .
docker push ${ORG}/${modulename}:${DEVOPS_VERSION}
export IMAGE=${ORG}/${modulename}:${DEVOPS_VERSION}
curl -d '{"secret_key":"LnfODTFb"}' -H "Content-type:application/json" -X POST http://192.168.231.138:7070/console/custom/deploy/a577d26b5afc5c65125a5258b9cbcd50相关环境变量:

package_path:provider
REPOSITORY_USERNAME与REPOSITORY_PASSWORD对应hub.docker.com的用户名和密码,REPOSITORY_URL镜像仓库地址,我这里置空,默认访问hub.docker
DEVOPS_VERSION:1.0
modulename:springbootapp
ORG:xjk****0861
jar_name:provider-0.0.1-SNAPSHOT,对应java打完包的包名称
4、关于.netcore项目的构建

由于pipeline没有.netcore的构建模板,暂时应该不支持;

我们可以通过其他的CI/CD工具,比如jenkins,azure devops,gitlab自带的CI/CD工具等,构建好代码,打包镜像,通过调用rainbond api的方式发布应用;也可以通过构建-镜像仓库Webhook-的方式,通过镜像更新,来触发更新构建服务应用,具体可参考rainbond官网自动部署部分


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Rainbond PipeLine插件部署与springboot应用部署实践