从零开始带你实现一套自己的CI/CD(一)Jenkins
创始人
2024-03-12 08:49:31
0

目录

  • 一、简介
  • 二、环境准备
    • 2.1 安装Docker和Docker-compose
    • 2.2 远程仓库Github/Gitee/GitLab
    • 2.3 部署Jenkins
  • 三、配置Jenkins
    • 3.1 Jenkins配置源码拉取地址
    • 3.2 Jenkins配置Maven构建代码
      • 3.2.1 准备jdk
      • 3.2.2 配置Maven
      • 3.2.3 Jenkins配置JDK&Maven并保存
    • 3.3 配置Jenkins任务构建代码
    • 3.4 配置Publish发布&远程操作
    • 3.5 配置任务的构建后操作
    • 3.6 立即构建任务
  • 四、CI/CD入门操作
    • 4.1 添加Dockerfile文件
    • 4.2 添加docker-compose.yml文件
    • 4.3 追加Jenkins构建后操作脚本命令
    • 4.4发布到Git仓库后由Jenkins立即构建并托送到目标服务器
    • 4.5 测试部署到目标服务器程序

一、简介

DevOps,字面意思是Development &Operations的缩写,也就是开发&运维。DevOps的方式可以让公司能够更快地应对更新和市场发展变化,开发可以快速交付,部署也更加稳定。

整体的软件开发流程包括:
PLAN–》CODE --》BUILD --》 TEST --》DEPLOY --》OPERATE --》MONITOR --》INTEGRATE

在这里插入图片描述

技术栈准备
Linux
JDK
Git
Github/Gitee/GitLab
Maven
Jenkins
Docker
Docker-compose

二、环境准备

2.1 安装Docker和Docker-compose

安装dockerdocker-compose环境:略

docker-compose 下载地址:https://github.com/docker/compose

2.2 远程仓库Github/Gitee/GitLab

可以使用Github或者Gitee作为远程Git代码仓库,可以自己部署GitLab

新建远程Git仓库:
在这里插入图片描述

2.3 部署Jenkins

(需要部署好docker和docker-compose环境)

准备docker-compose.yml 文件:

端口8080,并且将容器内/var/jenkins_home/目录挂载到宿主机当前目录的data目录。

version: "3.1"
services:jenkins:image: jenkins/jenkinscontainer_name: jenkinsports:- 8080:8080- 50000:50000volumes:- ./data/:/var/jenkins_home/

使用docker-compose up -d 命令执行docker-compose.yml 文件。
在这里插入图片描述

使用docker-compose logs -f命令查看docker-compose日志:

在这里插入图片描述

或者使用/var/jenkins_home/secrets/initialAdminPassword命令查看密码:
在这里插入图片描述
note:不是在宿主机目录,而是容器内目录。

启动成功后,在浏览器访问:服务器IP+8080:
在这里插入图片描述

选择 选择插件来安装
在这里插入图片描述

搜索 Git 勾选Git Parameter:
在这里插入图片描述

搜索 publish 勾选Publish Over SSH:
在这里插入图片描述
点击安装
在这里插入图片描述

创建一个用户:
在这里插入图片描述
配置Jenkins URL,完成部署:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、配置Jenkins

由于Jenkins需要从Git仓库拉取代码、需要本地构建、甚至需要直接发布自定义镜像到Docker仓库,所以Jenkins需要配置大量内容。

3.1 Jenkins配置源码拉取地址

创建Jenkins任务:
在这里插入图片描述

选择源码管理 --》选择Git ,输入Git远程仓库的地址,点击保存

在这里插入图片描述

点击立即构建

在这里插入图片描述
可以看到源码已经拉取带Jenkins本地,可以根据第三行日志信息,查看Jenkins本地拉取到的源码。

在这里插入图片描述

查看Jenkins容器中/var/jenkins_home/workspace/test的源码:
在这里插入图片描述

3.2 Jenkins配置Maven构建代码

代码拉取到Jenkins本地后,需要在Jenkins中对代码进行构建,这里需要Maven的环境,而Maven需要Java的环境,接下来需要在Jenkins中安装JDK和 Maven,并且配置到Jenkins服务

note: 在宿主机目录,在使用docker-compose部署Jenkins的时候已经将jenkins容器内的/var/jenkins_home/目录映射到了宿主机./data/目录:

在这里插入图片描述
所以只需要把jdk和maven的压缩包上传到此目录即可。

3.2.1 准备jdk

使用tar -zxvf jdk-8u351-linux-aarch64.tar.gz解压压缩包即可。(无需配置环境变量)
在这里插入图片描述
Note:
oracle jdk 官网地址:https://www.oracle.com/java/technologies/downloads/#java8-linux
Oracle下载jdk是需要登录的,这个Oracle账号亲测可用:

账号:bnptrhinldfoguijh@mytrashmailer.com
密码:#&qRfvE7rg37GhjEfDJy

3.2.2 配置Maven

使用tar -zxvf apache-maven-3.8.6-bin.tar.gz 命令解压Maven压缩包,并配置Maven的settings.xml

 
alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central 
 
 
 jdk-1.8  true 1.8  1.81.8 1.8  

3.2.3 Jenkins配置JDK&Maven并保存

上面两步已经准备了jdk和maven环境,现在需要配置到Jenkins中。

在这里插入图片描述

JAVA_HOME/var/jenkins_home/jdk1.8.0_351
MAVEN_HOME/var/jenkins_home/apache-maven-3.8.6
在这里插入图片描述
在这里插入图片描述

3.3 配置Jenkins任务构建代码

test项目中,配置构建环境:

在这里插入图片描述
选择调用底层Maven目标,目标为package,点击保存

在这里插入图片描述
点击立即构建

在这里插入图片描述
查看控制台日志
在这里插入图片描述

3.4 配置Publish发布&远程操作

jar包构建好之后,就可以根据情况发布到测试或生产环境,这里需要用到之前下载好的插件Publish Over SSH
配置远程服务器信息:
在这里插入图片描述

3.5 配置任务的构建后操作

配置test任务的构建后操作,发布jar包到目标服务:
选择Send build artifacts over SSH
在这里插入图片描述

Source files 填写 target/*.jar

在这里插入图片描述

3.6 立即构建任务

点击立即构建,查看控制台日志,并去目标服务器查看:
在这里插入图片描述

在这里插入图片描述
在服务器指定目录查看构建的jar包:

在这里插入图片描述

到此为止,我们实现了本地代码上传到远程仓库,通过Jenkins拉去代码,使用Maven构建打包,并将jar包发送到服务器指定目录。

四、CI/CD入门操作

  1. 基于Jenkins拉取远程Git仓库的代码进行构建发布到测试环境实现持续集成。

  2. 基于Jenkins拉取Git仓库指定发行版本的代码进行构建发布到生产环境实现CD实现持续部署。

为了让程序代码可以自动推送到测试环境基于Docker服务运行,需要添加Docker配置和脚本文件让程序可以在集成到主干的同时运行起来。

4.1 添加Dockerfile文件

FROM adoptopenjdk/openjdk8
COPY app.jar /usr/local
WORKDIR /usr/local
CMD java -jar app.jar

4.2 添加docker-compose.yml文件

version: '3.1'
services: app:build: ./image: app:v1.0.0container_name: appports:- 8888:8080

在这里插入图片描述

4.3 追加Jenkins构建后操作脚本命令

在Jenkins test项目的构建后操作的Source files 增加target/*.jar,docker/*

Exec command 添加脚本命令:

cd /data/jenkins_project/docker
mv ../target/*.jar ./app.jar
docker-compose down
docker-compose up -d --build
docker image prune -f

在这里插入图片描述

4.4发布到Git仓库后由Jenkins立即构建并托送到目标服务器

点击 立即构建
在这里插入图片描述

4.5 测试部署到目标服务器程序

进入目标服务器,使用docker ps命令,查看容器是否启动:
在这里插入图片描述
浏览器访问:
在这里插入图片描述
到此步骤,我们完成了:
本地IDE --》远程Git仓库 --》Jenkins拉取代码 --》Jenkins使用Maven构建打包 --》发布到服务器 --》执行脚本命令启动Docker容器。

下一篇文章我们继续学习DevOpsCI/CD流程。

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...