【CI/CD技术专题】「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍

简介: 【CI/CD技术专题】「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍

Jenkins基础介绍篇


  • Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。


  • 通过Jenkins实现自动化部署项目,本地git提交代码Jenkins自动化将项目部署在Linux服务器。




Jenkins技术原理篇


  • 版本控制服务
  • Jenkins自动化部署服务


image.png

Jenkins环境搭建篇


  • 如果使用Jenkins容器,我该怎么通过Jenkins容器部署SpringBoot项目?
  • 是通过Jenkins容器与SpringBoot容器中的文件交互进行项目部署吗?这能做到吗?
  • 又或是把SpringBoot项目放到Jenkins容器中管理,那Jenkins中又要安装git、maven等一堆东西,
  • 这一点都不方便。

jenkins镜像

image.png



组件部署规划


  • Jenkins:接收项目更新信息并进行项目打包与Docker脚本的执行
  • Docker:安装所需应用镜像与运行容器(本篇忽略)
  • git:项目信息同步


环境搭建


安装JDK


将下载完的jdk解压


tar -zxvf jdk-8u191-linux-x64.tar.gz
复制代码


在/etc/profile文件末尾增加以下配置
vim /etc/profile 
export JAVA_HOME=/home/jenkins/globalEnvi/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
复制代码


更新配置文件
source /etc/profile
复制代码


查看版本信息
[root@libo tyes]# java -version
java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_321-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
复制代码


安装Maven
下载maven并解压
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
tar -zxvf apache-maven-3.6.0-bin.tar.gz
复制代码


修改maven的远程镜像为阿里云镜像库
vim conf/setting.xml
    ...
       <mirror>  
          <id>nexus-aliyun</id>  
          <mirrorOf>central</mirrorOf>    
          <name>Nexus aliyun</name>  
          <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
      </mirror>
...
复制代码


在/etc/profile文件末尾增加以下配置
vim /etc/profile 
#注意这里是maven的安装路径 
M2_HOME=/home/jenkins/globalEnvi/apache-maven-3.6.0   
复制代码


重载/etc/profile这个文件 source /etc/profile
export PATH=${M2_HOME}/bin:${PATH}
复制代码


查看是否maven环境变量

[root@libo tyes ~]# mvn -v  Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)  Maven home: /home/zhangsha/apache-maven-3.6.3  Java version: 1.8.0_261, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_261-amd64/jre  Default locale: en_US, platform encoding: UTF-8  OS name: "linux", version: "3.10.0-1127.18.2.el7.x86_64", arch: "amd64", family: "unix"****



安装git


安装依赖


yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
yum install gcc perl-ExtUtils-MakeMaker
复制代码

下载git之后


查看版本


[root@libo tyes]# git --version
 git version 2.28.0  
复制代码


  • 安装Jenkins
  • 下载安装包jenkins.war;  - 在安装包根路径下,运行命令 `java -jar jenkins.war --httpPort=8080
  • 打开浏览器进入链接 http://localhost:8080.
  • 填写初始密码,激活系统

image.png


首次启动会提示初始密码位置,找到初始密码:

[root@libo tyes]# cat /var/jenkins_home/secrets/initialAdminPassword
9e3a37cf78264798878606621db632d3
复制代码


推荐安装的插件,保证基本常用的功能可以使用。


  • 安装需要的插件

image.png

插件安装界面


image.png

全局化配置


在jenkins页面“系统管理”-->“管理插件”-->”全局工具配置”:


image.png



配置相关Maven的settings配置文件路径


image.png配置相关Maven的安装home目录信息

image.png

配置相关的JDK的相关的目录信息


image.png

配置相关GIT的安装home目录信息

image.png注意:可能各种原因,插件安装失败,则跳过也可以,再登录到Jenkins之后可以对插件进行自定义选择性安装。


  • 设置初始用户和密码


image.png

登录账号密码之后,进入系统,安装完成。(如果录入账号密码登录遇到空白页,重启jenkins服务在尝试重新登录)


image.png

在jenkins页面“系统管理”-->“插件管理”-->"可选插件"中搜索:


在插件管理页面可以对插件进行安装、卸载、更新。(各个插件的版本和Jenkins版本有时候会有兼容性问题,可以进行更新或者降级)


image.png

image.png

  • Maven插件(必须)Maven Integration 用来支持构建maven项目
  • 远程连接服务插件(必须):Publish Over SSH 用来把构建好的部署包传送到指定服务器的指定位置
  • GitLab、Gitlab Authentication、Gitlab Hook来获取仓库源码
  • 发布插件(必须):Deploy to container Plugin
  • git插件: Git plugin(git和svn根据自身需求)

在jenkins页面“系统管理”-->“系统设置”:


  • (Publish over SSH插件配置)添加SSH Servers(可使用密钥,也可以使用密码)


image.png


Jenkins构建任务篇


首页-新建任务


填写任务名称,选择“构建一个Maven的软件项目”。


image.png


.配置源码管理

填写git地址操作


image.png


若是需要认证,则添加凭据即可

image.png

构建环境

image.png


构建

image.png


配置构建命令

image.png

配置构建后发布

image.png



填写执行命令
#!/bin/sh
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=logistics
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
#当前日期
DATE=`date +%Y%m%d`
#清除旧容器
if [ -n "$CID" ]; then
echo "存在$SERVER_NAME容器,CID=$CID"
echo "停止旧容器"
docker stop $SERVER_NAME
echo "删除旧容器"
docker rm $SERVER_NAME
fi
# 清楚旧镜像
if [ -n "$IID" ]; then
echo "存在$SERVER_NAME镜像,IID=$IID"
echo "删除镜像"
docker rmi $IID
fi
#构建镜像
echo "开始构建镜像"
docker build -f ./src/main/docker/Dockerfile -t $SERVER_NAME:v${DATE} ./target
echo "构建镜像成功!"
# 运行docker容器
echo "创建并启动$SERVER_NAME容器..."
docker run --name $SERVER_NAME -d -p 8071:8071 $SERVER_NAME:v${DATE}
echo "$SERVER_NAME容器启动完成
复制代码



立即构建

image.png


Jenkins部署流程篇


  1. 开发用户提交代码到Git源码仓库
  2. Jenkins服务器从指定Git仓库拉去代码,使用maven编译打包。
  3. Jenkins服务器通过ssh插件连接登录服务器,将打包好的war或者jar包传送到应用服务器指定位置,例如  home/web/a.war
  4. Jenkins服务器在应用服务器远程执行脚本文件,重启应用服务器tomcat 或者在应用服务器执行 java -jar 启动当前项目。
























相关文章
|
4天前
|
jenkins Java 持续交付
Gitee+Jenkins+SonarQube代码上线的实战操作
通过以上步骤,就可以实现基于Gitee、Jenkins和SonarQube的代码上线流程,确保代码的质量和上线过程的自动化和可控性。在实际操作中,可以根据项目的具体需求和环境进行适当的调整和优化。
|
19天前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
26天前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
79 1
|
1月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
66 0
|
19天前
|
运维 监控 jenkins
运维自动化实践:利用Jenkins实现高效CI/CD流程
【10月更文挑战第18天】运维自动化实践:利用Jenkins实现高效CI/CD流程
|
1月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
111 0
|
10天前
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
27 1
|
3月前
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
11天前
|
jenkins Devops 测试技术
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第26天】随着DevOps理念的普及,Jenkins作为一款开源自动化服务器,在持续集成(CI)与持续部署(CD)中发挥重要作用。本文通过某中型互联网企业的实际案例,展示了Jenkins如何通过自动化构建、持续集成和持续部署,显著提升开发效率、代码质量和软件交付速度,帮助企业解决传统手工操作带来的低效和错误问题。
37 4
|
3月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
80 1
下一篇
无影云桌面