CI/CD技术专题「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍
Posted 李浩宇Alex
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CI/CD技术专题「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍相关的知识,希望对你有一定的参考价值。
Jenkins基础介绍篇
- Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
- 通过Jenkins实现自动化部署项目,本地git提交代码Jenkins自动化将项目部署在Linux服务器。
Jenkins技术原理篇
-
版本控制服务
- Jenkins自动化部署服务
Jenkins环境搭建篇
- 如果使用Jenkins容器,我该怎么通过Jenkins容器部署SpringBoot项目?
- 是通过Jenkins容器与SpringBoot容器中的文件交互进行项目部署吗?这能做到吗?
- 又或是把SpringBoot项目放到Jenkins容器中管理,那Jenkins中又要安装git、maven等一堆东西,这一点都不方便。
组件部署规划
-
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环境变量
安装git
安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
yum install gcc perl-ExtUtils-MakeMaker
查看版本
[root@libo tyes]# git --version
git version 2.28.0
- 安装Jenkins
- 下载安装包jenkins.war;
- 在安装包根路径下,运行命令 `java -jar jenkins.war --httpPort=8080 - 打开浏览器进入链接 http://localhost:8080.
- 填写初始密码,激活系统
- 下载安装包jenkins.war;
[root@libo tyes]# cat /var/jenkins_home/secrets/initialAdminPassword
9e3a37cf78264798878606621db632d3
推荐安装的插件,保证基本常用的功能可以使用。
-
安装需要的插件
- 插件安装界面
全局化配置
- 配置相关Maven的settings配置文件路径
-
配置相关Maven的安装home目录信息
-
配置相关的JDK的相关的目录信息
- 配置相关GIT的安装home目录信息
-
设置初始用户和密码
- 登录账号密码之后,进入系统,安装完成。(如果录入账号密码登录遇到空白页,重启jenkins服务在尝试重新登录)
在jenkins页面“系统管理”-->“插件管理”-->"可选插件"中搜索:
-
Maven插件(必须)Maven Integration 用来支持构建maven项目
-
远程连接服务插件(必须):Publish Over SSH 用来把构建好的部署包传送到指定服务器的指定位置
-
GitLab、Gitlab Authentication、Gitlab Hook来获取仓库源码
-
发布插件(必须):Deploy to container Plugin
- git插件: Git plugin(git和svn根据自身需求)
- (Publish over SSH插件配置)添加SSH Servers(可使用密钥,也可以使用密码)
Jenkins构建任务篇
首页-新建任务
.配置源码管理
构建环境
构建
配置构建命令
配置构建后发布
填写执行命令
#!/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容器启动完成
立即构建
Jenkins部署流程篇
-
开发用户提交代码到Git源码仓库
-
Jenkins服务器从指定Git仓库拉去代码,使用maven编译打包。
-
Jenkins服务器通过ssh插件连接登录服务器,将打包好的war或者jar包传送到应用服务器指定位置,例如 home/web/a.war
- Jenkins服务器在应用服务器远程执行脚本文件,重启应用服务器tomcat 或者在应用服务器执行 java -jar 启动当前项目。
以上是关于CI/CD技术专题「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍的主要内容,如果未能解决你的问题,请参考以下文章
CI/CD技术专题「Jenkins实战系列」Jenkins实现自动化部署+自动化合并其他分支
CI/CD技术专题「Jenkins实战系列」jenkins+pipeline构建自动化部署
CI/CD技术专题「Jenkins实战系列」重塑Jenkins服务进行自动合并的方案实现(纠正错误)
CI/CD技术专题「Jenkins实战系列」jenkins+pipeline构建自动化部署
CI/CD技术专题「Jenkins实战系列」Jenkinsfile+DockerFile实现自动部署
CI/CD技术专题「Jenkins实战系列」如何通过Gitlab对接Jenkins构建提交自动触发部署构建体系指南(上部)