一、Jenkins 介绍
Jenkins是一个开源的自动化服务器,用于实现持续集成和持续交付(CI/CD)流程。它提供了丰富的功能和插件生态系统,可帮助开发团队自动化构建、测试和部署软件。
Jenkins的主要特点包括:
- 自动化构建:Jenkins可以从源代码管理工具(如Git或SVN)中获取代码,并触发自动化构建过程。它支持各种构建工具(如Maven、Gradle和Ant),可以编译、打包和生成软件。
- 持续集成:Jenkins支持持续集成,可以根据预定的时间表或版本控制系统的事件触发构建过程。这有助于及时发现和解决集成问题,并提高团队的协作效率。
- 测试和质量控制:Jenkins可以与各种测试框架和工具集成,例如
JUnit、Selenium和JMeter。它能够运行测试套件、收集测试结果,并提供报告和趋势图表,帮助团队评估和监控软件质量。 - 部署和交付:Jenkins可以与云平台、容器技术(如Docker和Kubernetes)以及
原文链接:https://dqzboy.com 配置管理工具(如Ansible和Chef)等集成,实现自动化部署和交付。这使得软件发布过程更加可靠、可重复和可管理。 - 可扩展性和插件生态:Jenkins具有强大的插件生态系统,提供了各种功能扩展和集成选项。用户可以根据自己的需求选择并安装适合的插件,从而定制和扩展Jenkins的功能。
Jenkins可以帮助开发团队实现持续集成和持续交付,加快软件开发周期,提高软件质量,并提供丰富的工具和可视化界面来管理和监控整个软件交付流程。
Jenkins官网:jenkins.io
二、Jenkins 部署
2.1、环境准备
2.1.1:主机名更改
[root@localhost ~]# hostnamectl set-hostname jenkins
2.1.2:防火墙配置
# 查看放开的端口
[root@jenkins ~]# firewall-cmd --zone=public --list-ports
# 放开端口
[root@jenkins ~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp
# 使其规则生效
[root@jenkins ~]# firewall-cmd --reload
2.1.3
[root@jenkins ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
[root@jenkins ~]# setenforce 0
[root@jenkins ~]# getenforce
Permissive
[root@jenkins ~]# sestatus
SELinux status: disabled
2.1.4:设置epel源、安装基本操作命令
[root@gitlab ~]# yum -y install wget
[root@gitlab ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@gitlab ~]# yum install -y net-tools vim lrzsz tree screen lsof tcpdump ntpdate
2.1.5:时间同步
[root@gitlab ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@gitlab ~]# echo "*/5 * * * * ntpdate time1.aliyun.com &> /dev/null && hwclock -w" >> /var/spool/cron/root
[root@gitlab ~]# systemctl restart crond
2.2:下载软件
2.2.1:下载JDK
2.2.2:下载Jenkins

强烈推荐采用War包安装方式,并使用Tomcat 9版本启动。务必确保Tomcat版本正确,以保障顺利安装与启动。
2.3:安装部署
2.3.1:安装JDK
- YUM安装的是系统默认openjdk,我这里采用安装oracle jdk,不使用openjdk
- 注意:目前Jenkins不支持最新版本的jdk,jenkins官方建议安装的JDK版本为11版本,并且Jenkins将在2022年9月1日不支持JDK8版本

[root@jenkins ~]# cd /opt/soft
[root@jenkins soft]# rpm -ivh jdk-8u231-linux-x64.rpm
注意:Jenkins 宣布:从 2022 年 6 月 28 日发布的 Jenkins 2.357 和即将发布的 9 月 LTS 版本开始,Jenkins 最低需要 Java 11。相关链接:Jenkins requires Java 11 or newer
2.3.2:jenkins安装
- 采用tomcat运行jenkins,为了解决jenkins用户权限的问题
#创建普通用户
[root@jenkins ~]# useradd deploy
#下载安装Tomcat
[root@jenkins ~]# tar -xf apache-tomcat-9.0.27.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins local]# mv apache-tomcat-9.0.27 tomcat
#编辑systemd服务脚本
[root@jenkins ~]# vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat # 服务的描述
After=network.target # 在网络服务启动后再启动该服务
[Service]
User=deploy # 指定运行该服务的用户
Group=deploy # 指定运行该服务的用户组
Type=forking # 以 fork 方式运行,启动脚本会在后台运行
ExecStart=/usr/local/tomcat/bin/startup.sh # 启动服务时执行的命令
ExecStop=/usr/local/tomcat/bin/shutdown.sh # 停止服务时执行的命令
PrivateTmp=true # 在独立的命名空间中运行服务,提高安全性
[Install]
WantedBy=multi-user.target # 将该服务添加到 multi-user.target(即多用户模式下启动)
#删除webapps下默认的文件,将jenkins的war包放入webapps目录下,更改Tomcat默认访问路径
[root@jenkins ~]# mv jenkins.war /usr/local/tomcat/webapps/
[root@jenkins ~]# vim /usr/local/tomcat/conf/server.xml
<Context path="" docBase="jenkins" debug="0" reloadable="true" />

#修改Jenkins的默认工作主目录(配置文件,job等都会存储在该路径下)
[root@jenkins ~]# cd /usr/local/tomcat/bin/
[root@jenkins bin]# vim catalina.sh
export JENKINS_HOME="/opt/jenkins"

#更改tomcat目录的权限
[root@jenkins ~]# chown -R deploy:deploy /usr/local/tomcat
#创建Jenkins的工作目录
[root@jenkins ~]# mkdir /opt/jenkins/workspace
[root@jenkins ~]# chown -R deploy:deploy /opt/jenkins
#启动tomcat
[root@jenkins ~]# systemctl daemon-reload
[root@jenkins ~]# systemctl start tomcat
[root@jenkins ~]# systemctl enable tomcat
[root@jenkins ~]# lsof -i:8080
三、Jenkins 配置
3.1:访问页面
Tomcat 默认的 Web 端口是 8080;http://服务器的IP地址:8080

3.2:拷贝密码
请根据您所访问页面上的信息,获取Jenkins默认秘钥。以下图片是相关步骤的指引。
[root@jenkins ~]# cat /opt/code/workspace/secrets/initialAdminPassword

- 安装推荐的插件即可
3.3:登入Jenkins
四、Jenkins Job
4.1:Jenkins Job介绍
- 代表也给任务或者项目
- 可配置与可执行
- 执行后的记录称之为Build
- 日志监控与记录
- 所有文件集中保存
4.2:Freestyle Job与Pippeline Job区别
4.2.1: Freestyle Job(自由风格任务)
- Freestyle Job是Jenkins最基本和最早期的任务类型。它提供了简单直观的用户界面,允许用户通过图形化界面来配置构建过程。
- 用户可以根据需要选择构建环境、配置源代码管理工具、设置构建触发条件,并指定构建步骤和后续操作。
- Freestyle Job适合于相对简单的构建流程和集成需求,对于不需要复杂逻辑的项目,使用Freestyle Job会更加方便。
4.2.2: Pippeline Job(流水线任务)
- Pipeline Job引入了基于脚本的构建定义,使用Jenkinsfile文件来描述整个构建流程。
- 它采用了
Declarative Pipeline和Scripted Pipeline两种语法,允许开发人员以代码的形式编写复杂的构建逻辑,包括条件判断、循环、并行处理等。 - Pipeline Job提供了更高级的构建控制和可重用性,能够实现更复杂的持续交付流程,并且与版本控制系统集成紧密。
- 它支持Pipeline插件提供的丰富功能,如模板化构建、参数化构建、可视化报告等。
最大区别:Freestyle Job适用于简单的构建需求,通过图形界面进行配置。而Pipeline Job则更适合复杂的构建过程和持续集成/交付流水线,使用脚本编写构建逻辑,并提供更高级的控制和可扩展性。根据项目的要求和团队的实际情况,选择适合的任务类型来管理Jenkins中的构建过程。
五、Jenkins 插件
我将在下面的演示中仅展示插件安装的步骤。确切需要安装哪些插件取决于您的作业(Job)的功能需求
- 可在 Jenkins 官网下载对应的插件
六、Jnekins 视图
我们可以根据不同环境或项目的需求,创建相应的视图,以便更好地管理和区分它们
七、Jenkins自动更新脚本
这个脚本可以帮助你完成以下任务:
- 在线检测最新的Jenkins LTS版本。
- 停止现有的旧版本Jenkins,然后备份。
- 下载最新版本的Jenkins,并进行哈希校验。
- 完成校验后,替换并启动新版本的Jenkins。
wget https://raw.githubusercontent.com/dqzboy/ShellProject/main/Linux%E8%BD%AF%E4%BB%B6%E6%9C%8D%E5%8A%A1/UpJenkins.sh
bash UpJenkins.sh
























大佬,根据你的部署jenkins,怎么修改访问端口呢,我改server.xml里的端口,通过systemcd服务启动,端口起不来,通过/usr/local/tomcal/bin/startup.sh 端口又可以启动,systemd服务怎么优化
起不来的报错信息是什么?
tomcat服务能起来,是修改后的端口没启动
日志里面肯定有报错的,看下日志
SEVERE[main]org.apache.catalina.core.StandardContext.listenerStart配置类[jenkins.JenkinsHttpSessionListener]的应用程序侦听器时出错,提示这个错误,改完端口启动
Java版本是啥?安装JDK11
jdk是11,tomcat是10的版本
Tomcat使用 9版本,10版本有依赖不兼容
还是大佬牛逼,更换tomcat版本就ok了
jenkins主要目录,里面的目录都没有,/etc/sysconfig/jenkins,这些,
你回复我的邮件,能优化下不,你回复我一条消息,我一共收到四封邮件
文章中,创建Jenkins工作目录,写错了吧,你写的是:mkdir /opt/code/workspace
嗯嗯,写错了
嗯嗯,这块写错了
又来学习了
图片看不清
这还不清楚?
给博主点赞,写的不错
就是那种点击一点图片会放大,我看见别的网站有
我这个目前不支持,后面抽时间我加个
图片点击不能放大,看不清
这个是wp自动压缩了,抽时间我重新上传下
不错不错
谢谢