CICD之Rancher中使用Jenkins部署springcloud多模块项目

本文详细介绍Jenkins在自动化部署中的应用,包括多模块项目打包、Rancher集成、定时任务设置及备份策略。涵盖Jenkins安装配置、Maven与Docker集成、Rancher自动升级流程,以及Jenkins的备份和还原方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用jenkins的理由

 项目比较大的时候,如有20个子项目,每天下班要打包测试,这20个项目,
 要依次编译、打包、推送到Docker仓库、重新部署,
 这一系列流程下来基本上 就2个小时没有了,本地操作还各种卡,
 导致基本两个小时浪费了。
 使用自动化打包工具目前知道有,Jenkins、Rancher自带的Pipline,
 为啥选中了Jenkins, 因为Pipline目前没有看到能支持svn,
 公司用的还是svn。

参考资料:Rancher2+Docker+SpringCloud+Jenkins+Redis集群+MySQL主从搭建
参考资料 站内博客 jenkins tomcat 版本 17年 windows tomcat版本

一:Rancher docker安装配置文件

使用rancherdocker-compose.yml文件,如下:
注意事项:
1:要给本地映射路径权限,否则 docker 内部jenkins 打包报错(permission denied):chown -R 1000:1000 /usr/local/jenkins_volume/jenkins_home

version: '2'
services:
  # docker私有仓库
  registry:
    image: registry:latest
    stdin_open: true
    volumes:
      - /usr/local/docker_volume/registry:/var/lib/registry
    tty: true
    ports:
      - 5000:5000/tcp
    labels:
      io.rancher.container.pull_image: always
  jenkins: #docker rancher jenkins
    privileged: true
    image: jenkins/jenkins:2.199-alpine
    stdin_open: true
    volumes:
      - /usr/local/jenkins_volume/jenkins_home:/var/jenkins_home  #持久化jenkins目录;chmod -R 3000:3000 /usr/local/jenkins_volume/jenkins_home
      - /usr/bin/docker:/var/bin/docker #dockr执行命令
      - /var/run/docker.sock:/var/run/docker.sock
      - /etc/alternatives/:/var/java #java 环境
      - /etc/localtime:/etc/localtime #时间同步
    tty: true
    ports:
      - 8989:8080/tcp
      - 30001:50000/tcp
    user: root #指定root用户执行,防止出现权限不走问题。
    labels:
      io.rancher.container.pull_image: always

1.1 Docker版本jenkins安装注意

1.1.1 安装docker cloud插件

1: 安装docker jenkins 云插件
docker 系统配置 - cloud - docker 配置 docker主机
经过前两部这里总算看到了 可以在推送到docker 主机

二:Centos直接在主机上面安装 jenkins

2.1 直接安装jenkins (修改home目录、重启)

之前17年的时候,用的jenkins使用的tomcat 运行,这里我们参考官网,直接使用 rpm部署。   官网特别全,直接看官网就OK了。 建议使用tomcat war形式的进行安装, rpm安装形式中过毒。

参考:CentOS 7 安装 Jenkins <国内详细教程、不建议使用 rpm 方式>
参考:RedHat Repository for Jenkins <官网详细教程,可以查阅到最新的版本>
参考: jenkins 安装、卸载
参考:csdn 下载war 包- 官网速度比较感人

#2020最新按照心得
0: jenkins docker形式,镜像名称和内部端口 jenkins/jenkins:lts   8080 
1: 服务器授权设置  chown -R 1000:1000  /usr/local/jenkins_home/
2: 修改镜像源:vi  hudson.model.UpdateCenter.xml  将 url 修改为 清华大学官方镜像:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json    修改完毕,然后再安装插件
3: 安装完毕,记得 安装插件: Maven、rancher、  docker  [cloud providers]

另外插件配置:
2-1:jdk:使用外置
2-2:maven 使用外置的	

==============
jenkins 安装方式很多,直接yum源,或者 docker, 或者 tomcat war形式,推荐使用war。
docker: 配置繁琐
yum形式:遇到过病毒
tomcat形式:适合会java、tomcat的同学。 文件目录:`/root/.jenkins/``/root/.m2/`


===================
文件看是否被串改:
通用Java包(.war)
SHA-256:97124ccfaf171e3703ca323e6b38310d1c11aa3a2357333f8f394ea7962b369b

参加:MacBook下校验下载文件的SHA2-256 https://www.jianshu.com/p/dbbd886d66a5



docker run -d -p 10240:8080 -p 10241:50000 -v /var/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime --name myjenkins jenkins/jenkins

  1. 全局配置系统的 maven地址,我们使用主机的maven地址,如,全局搜索find / -name "maven"也能找到 或者 mvn -v 就能看到 Maven home/usr/share/maven
  2. 配置jdk地址,我们安装openjdk, 我们使用mvn -v,就能找打Java home路径,去掉后缀jre,如:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/.

2.2 Jenkins自动丢弃构建历史数据

自动丢弃废弃的构建历史

参考: 自动丢弃废弃的构建历史

2.3 Jenkins中文显示

参考: Jenkins中文显示

2.4 Jenkins 示例最简单demo

jenkins-demo-01.png - 创建maven项目
jenkins-demo-02.png - 填写通用信息 general
jenkins-demo-03.png - 配置 源码,可以没有源码
jenkins-demo-04.png - 触发器,可以是定时-
jenkins-demo-04.png.png - 触发器 每天饭点 进行 构建
jenkins-demo-05.png - 指定 maven pom文件位置 和 编译命令
jenkins-demo-06.png - 编译高级配置
jenkins-demo-07.png - 指定执行脚本

2.5 Jenkins 全局配置 configure

jenkins 全局配置01
jenkins 全局配置02

2.6 Jenkins 工具配置 configureTools

jenkins 工具配置

2.7 jenkins构建触发器定时任务Build periodically和Poll SCM【转载】

参考: jenkins构建触发器定时任务Build periodically和Poll SCM【转载】
自己比较喜欢的0 8,12,18,22 * * *每天的8点,12点,18点,22点,一天构建4次

2.8 maven配置

maven配置, find / -name "settings.xml"
maven仓库地址: find / -name ".m2"
  • 1: 修改maven仓库地址<localRepository>/usr/local2/jenkins_volume/jenkins_home/.m2/repository</localRepository>,默认~/.m2,这自己定义
  • 2: <offline>true</offline>支持离线
  • 3:增加maven自定义仓库
		<mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>

2.9 maven打包多模块项目打包报错

参考:maven build 的时候报错 Could not find artifact pom:001-SNAPSHOT 异常

项目解决方式,把挨个依赖的手工 安装 mvn install 了一遍, 然后把所有 依赖jar copy到服务器 .m2目录。如果是比较大的项目安装还是挺麻烦的,无法一次性全部安装,bgy iot 就是这个情况。

三:rancher自动升级

3.1 webhooks方式(阿里云容器服务、dockerhub 触发)rancher 自动升级

使用jenkins可以自动产生docker镜像了,但是发现镜像产生了,还得自己点击rancher上面的升级。
这里就通过阿里云自动调用 rancher webhooks自动来升级。

参考: 通过 Rancher webhook 实现服务自动升级

3.2 通过jenkins rancher 插件实现自动升级

jenkins rancher 升级
项目中亲测成功

四:Jenkins的备份和还原

4.1 Jenkins复制和导出导入job

有时候机器安装jenKins的机器有问题,需要重新安装,重置配置还是挺麻烦,这里进行job的备份和还原。
说明,我这里最后使用的方法是第一个种手工导入导出job,job里面只需要config.xml,别的都不需要。
直接导入发下还是没用,这里是先创建好空的job,然后覆盖对应的config.xml

参考:Jenkins复制和导出导入job
参考:jenkins 备份配置信息—推荐使用全部备份
jenkins 密钥列表
创建一个任务-任务必须和之前的风格一样
用备份的config.xml 覆盖线上的
job config.xml 导入完成,这里 读取设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dazer007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值