需求和背景
win11 + wsl2 + armbian(玩客云矿渣),构建个人cicd流水线,提高迭代效率。
具体步骤
基础设施准备
硬件准备:一台笔记本,用于开发和构建部署,一台服务器,用于日常服务运行。
笔记本配置:amd3600, 40G内存
服务器配置:玩客云二代矿渣刷的armbian,ARMv7 Processor rev 1 (v7l), 1G内存
软件准备:
- win需要安装wsl2,ubuntu子系统
- wky需要安装docker容器
整体网络拓扑配置
首先,最重要的事情是,要确定需要用的机器,固定下来ip,避免后续ip变更导致频繁修改服务。
代码仓库(gitlab)
部署流程参考:https://blog.csdn.net/weixin_45565886/article/details/129763344
服务ip变化,gitlab需要改动
构建工具(jenkins)
部署流程参考:https://blog.csdn.net/weixin_45565886/article/details/129763344
- 源码管理配置仓库地址
- 构建步骤设置--maven打jar包
- ssh上传jar包和dockerfile到服务主机、并重新构建镜像,关闭旧服务,启动新服务
问题参考:
服务ip变化,jenkins需要改动:
-
data目录下的jenkins.model.JenkinsLocationConfiguration.xml
-
修改task的git仓库地址
服务主机配置(docker)
参考:
开发主机配置(wsl)
参考:
docker通用异常:
效果演示
- 本地提交代码改动到代码仓库
- 登录jenkins执行构建任务(带部署步骤)
TODO项
- jenkins构建jar包上传给服务器的方式,改成jenkins构建jar包和镜像,再上传拉镜像启动逻辑的脚本给服务器。(目前来说还没这个需求)
个人感悟
- 从0开始,搭建自己的cicd流程,会遇到很多奇怪的问题,且不成章法,这些琐碎的事情,会占用大量的精力,建议多花点钱,比如说,把玩客云这个矿渣换成一个普通的x64服务器+debian系统,能避免很多软件在armbian的适配性问题。
- 网络拓扑一定要先考虑好,也要考虑好哪台机器用来部署那个服务,避免后期持续改动,而不得不对前期配置项进行改动。
- 多折腾也好,毕竟职场当螺丝钉的场景居多,很少有涉及到服务需求到上线全流程的工作,多了解一些本职之外的工作,也算是扩宽自己的能力边界。