Jenkins部署与使用

实验环境

192.168.10.40部署好GitLab

一、简介

Jenkins 是一个开源的、基于 Java 开发的持续集成和持续交付(CI/CD)工具,广泛应用于自动化构建、测试和部署软件项目。

1、核心特性

(1)持续集成与持续交付(CI/CD)

        自动化构建、测试和部署流程

        支持多种编程语言和技术栈

        可与各种版本控制系统集成

(2)插件生态系统

        拥有超过 1,800 个社区贡献插件

        支持与 Docker、Kubernetes、AWS 等云技术集成

        可扩展与各种测试框架、代码质量工具集成

(3)流水线(Pipeline)支持

        使用 Groovy 语法定义复杂构建流程

        可视化构建流程 (Blue Ocean)

        支持多分支流水线

(4)分布式构建

        支持主从架构

        可在不同平台和环境中执行构建任务

        动态资源分配

2、主要优势

开源免费:完全免费且社区支持强大

跨平台:可在 Windows、Linux、macOS 上运行

易于安装:提供多种安装方式 (WAR包、Docker、系统包等)

可扩展性强:通过插件可满足各种定制化需求

可视化界面:提供直观的Web界面管理构建任务

3、典型应用场景

自动化构建:代码提交后自动触发构建

自动化测试:运行单元测试、集成测试等

静态代码分析:集成SonarQube等代码质量工具

自动化部署:部署到测试/生产环境

定期任务:执行定时构建或备份等任务

二、部署Jenkins(Jenkins)

1、安装JDK

这里Jenkins安装2.504.3,选择安装Java17

(1)卸载自带Java1.8.0

rpm -qa | grep java

dnf -y remove java-1.8.0-openjdk-headless-1.8.0.452.b09-2.el9.x86_64

(2)上传jdk-17_linux-x64_bin.tar.gz包到/root目录,解压并移动到指定位置

tar xf jdk-17_linux-x64_bin.tar.gz

mv jdk-17.0.12/ /usr/local/java

(3)设置环境变量

echo 'export JAVA_HOME=/usr/local/java' >> /etc/profile

echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile

加载环境变量

source /etc/profile

(4)查看Java版本

java -version

2、安装Tomcat

(1)下载tomcat源码包,解压并移动到指定位置

wget https://mirrors.aliyun.com/apache/tomcat/tomcat-10/v10.1.43/bin/apache-tomcat-10.1.43.tar.gz

tar xf apache-tomcat-10.1.43.tar.gz

mv apache-tomcat-10.1.43 /usr/local/tomcat

(2)设置环境变量

vim /etc/profile

添加修改:

export TOMCAT_HOME=/usr/local/tomcat

export PATH=$JAVA_HOME/bin:$TOMCAT_HOME/bin:$PATH

加载环境变量

source /etc/profile

(3)启动tomcat服务

startup.sh或catalina.sh start

ss -anplt | grep java

(4)使用浏览器访问

192.168.10.41:8080

3、安装Jenkins

(1)下载jenkins.war包

官方下载地址:https://get.jenkins.io/war-stable/

(2)上传jenkins.war包到/root目录并移动到tomcat的网页目录下

mv jenkins.war /usr/local/tomcat/webapps/

(3)使用浏览器访问Jenkins

192.168.10.41:8080/jenkins

查看管理员登录密码

cat /root/.jenkins/secrets/initialAdminPassword

三、在GitLab创建项目

使用管理员root用户登录GitLab

(1)创建群组

(2)创建项目

(3)推送现有的Git仓库到GitLab(GitLab)

创建Git仓库

mkdir /mygit

cd /mygit/

git init

git config --global user.name "lkai"

git config --global user.email "lkai@qq.com"

echo "test" > test.txt

git add test.txt

git commit -m "add new file test.txt"

生成密钥对

ssh-keygen

查看生成的公钥

cat /root/.ssh/id_rsa.pub

上传公钥到GitLab

推送现有的Git仓库

git remote add origin git@192.168.10.40:dev/my-project1.git

git push --set-upstream origin --all

查看代码

四、Jenkins的使用

1、新建任务并配置、构建

(1)新建任务

(2)查看Git仓库的SSH 协议克隆地址

(3)配置myproject1任务

(4)添加凭据

生成密钥对(Jenkins)

ssh-keygen

查看生成的公钥(Jenkins)

cat /root/.ssh/id_rsa.pub

添加公钥到GitLab

使用Jenkins SSH连接一下GitLab生成known_hosts文件(Jenkins)

ssh 192.168.10.40

查看生成的私钥(Jenkins)

cat /root/.ssh/id_rsa

添加私钥到Jenkins

(5)继续配置myproject1任务

(6)构建

根据构建信息,会将代码存放到/root/.jenkins/workspace/myproject1目录

ls /root/.jenkins/workspace/myproject1

2、使用触发器(Triggers)实现自动构建

(1)触发远程构建

作用:通过 URL 请求或命令行触发构建(无需登录 Jenkins)。

创建身份验证令牌

记录URL:192.168.10.41:8080/jenkins/job/myproject1/build?token=123

访问URL触发构建

使用浏览器访问192.168.10.41:8080/jenkins/job/myproject1/build?token=123

触发构建动作

(2)其他工程构建后触发

作用:当前项目的构建依赖于其他项目的构建结果。

创建任务

配置myproject1任务的触发器

在testproject任务构建

查看myproject1任务状态

因为testproject任务执行构建,所以myproject1任务根据触发器也触发构建动作

(3)定时构建

作用:基于时间表自动触发构建(类似 Cron 任务)。

配置方式:使用 Cron 语法。

配置myproject1任务的触发器

等待一分钟

时间到后,会自动触发构建动作

(4)轮询 SCM

作用:定期检查代码仓库是否有变更,有变更则触发构建。

配置方式:使用 Cron 语法。

与定时构建的区别:

        定时构建:无条件按时间触发。

        轮询 SCM:仅在代码变更时触发。

配置myproject1任务的触发器

更改代码并提交(GitLab)

cd /mygit/

echo "hello world" >> test.txt

git add .

git commit -m "modify test.txt"

git push origin master

查看myproject1任务状态

更新代码提交后会自动触发构建动作

对比总结

触发器类型

触发条件

适用场景

性能影响

触发远程构建

外部 HTTP 请求

外部系统集成

低(按需触发)

其他工程构建后触发

上游项目构建完成

依赖链式构建

中等

定时构建

固定时间表

定期任务/报表

高(频繁无意义构建)

轮询 SCM

代码仓库变更

无 Webhook 支持的环境

中(频繁轮询)

3、使用 GitLab Webhook 构建 Jenkins 任务

(1)安装GitLab插件

(2)开启 "允许来自 webhooks 和集成对本地网络的请求"

(3)关闭 GitLab 认证

(4)Jenkins任务配置

配置 GitLab 触发器

http://192.168.10.41:8080/jenkins/project/myproject1

生成Secret token(用于身份验证)

5dd5ae69b17e2ce9055c719811af8cdd

(5)GitLab 配置 Webhook

添加 Webhook

测试生成一个推送事件

(6)查看myproject1任务状态

(7)创建代码并推送到仓库(GitLab)

cd /mygit/

echo "hello world" > hello.txt

git add .

git commit -m "add hello.txt file"

git push origin master

(8)查看myproject1任务状态

推送代码后触发构建动作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值