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

Jenkins部署多模块项目

  • 使用jenkins的理由
    • 一:Rancher docker安装配置文件
    • 1.1 Docker版本jenkins安装注意
      • 1.1.1 安装docker cloud插件
    • 二:Centos直接在主机上面安装 jenkins
      • 2.1 直接安装jenkins (修改home目录、重启)
      • 2.2 Jenkins自动丢弃构建历史数据
      • 2.3 Jenkins中文显示
      • 2.4 Jenkins 示例最简单demo
      • 2.5 Jenkins 全局配置 configure
      • 2.6 Jenkins 工具配置 configureTools
      • 2.7 jenkins构建触发器定时任务Build periodically和Poll SCM【转载】
      • 2.8 maven配置
    • 三:rancher自动升级
      • 3.1 webhooks方式(阿里云容器服务、dockerhub 触发)rancher 自动升级
      • 3.2 通过jenkins rancher 插件实现自动升级

使用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插件

CICD之Rancher中使用Jenkins部署springcloud多模块项目_第1张图片

CICD之Rancher中使用Jenkins部署springcloud多模块项目_第2张图片

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

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

之前17年的时候,用的jenkins使用的tomcat 运行,这里我们参考官网,直接使用 rpm部署。   官网特别全,直接看官网就OK了。

参考:CentOS 7 安装 Jenkins
参考:RedHat Repository for 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

CICD之Rancher中使用Jenkins部署springcloud多模块项目_第3张图片
CICD之Rancher中使用Jenkins部署springcloud多模块项目_第4张图片
CICD之Rancher中使用Jenkins部署springcloud多模块项目_第5张图片
CICD之Rancher中使用Jenkins部署springcloud多模块项目_第6张图片
CICD之Rancher中使用Jenkins部署springcloud多模块项目_第7张图片
CICD之Rancher中使用Jenkins部署springcloud多模块项目_第8张图片
CICD之Rancher中使用Jenkins部署springcloud多模块项目_第9张图片
CICD之Rancher中使用Jenkins部署springcloud多模块项目_第10张图片

2.5 Jenkins 全局配置 configure

CICD之Rancher中使用Jenkins部署springcloud多模块项目_第11张图片
CICD之Rancher中使用Jenkins部署springcloud多模块项目_第12张图片

2.6 Jenkins 工具配置 configureTools

CICD之Rancher中使用Jenkins部署springcloud多模块项目_第13张图片

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"
  • 1: 修改maven仓库地址/usr/local2/jenkins_volume/jenkins_home/.m2/repository,默认~/.m2,这自己定义
  • 2: true支持离线
  • 3:增加maven自定义仓库
		<mirror>
            <id>alimavenid>
            <name>aliyun mavenname>
            <url>http://maven.aliyun.com/nexus/content/groups/public/url>
            <mirrorOf>centralmirrorOf>
        mirror>

三:rancher自动升级

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

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

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

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

CICD之Rancher中使用Jenkins部署springcloud多模块项目_第14张图片
项目中亲测成功

你可能感兴趣的:(tester)