1. Jenkins简介
Jenkins是由CloudBees开发的开源自动化服务器,是持续集成和持续部署(CI/CD)领域最流行的工具之一。Jenkins采用Java语言编写,具有丰富的插件生态系统,支持各种构建、部署和自动化任务。Jenkins广泛应用于软件开发、自动化测试、持续部署等场景。更多学习教程www.fgedu.net.cn
Jenkins的主要特点包括:开源免费、丰富的插件生态、分布式构建、Pipeline流水线、多平台支持、易于扩展、社区活跃、安全可靠。
2. Jenkins版本说明
Jenkins提供两个版本系列,用户可根据需求选择:
当前版本
Jenkins 2.555:最新周版本,包含最新功能
Jenkins 2.492.x:LTS长期支持版本
版本类型
Weekly版本:每周发布,包含最新功能和修复
LTS版本:长期支持版本,每12周选择一个基线,每4周发布稳定更新
依赖要求
Java 17或Java 21(推荐)
最低内存:256MB,推荐2GB以上
磁盘空间:10GB以上
支持的平台
Linux:所有主流发行版
Windows:Windows Server 2012+
macOS:10.15及以上
Docker:官方镜像
3. 官方下载方式
Jenkins是完全开源免费的CI/CD工具,可直接从官网下载。学习交流加群风哥微信: itpux-com
官方下载地址
Jenkins官网:https://www.jenkins.io/
下载页面:https://www.jenkins.io/download/
插件市场:https://plugins.jenkins.io/
使用wget下载
$ wget https://get.jenkins.io/war/2.555/jenkins.war
# 输出示例如下:
–2026-04-04 10:15:00– https://get.jenkins.io/war/2.555/jenkins.war
Resolving get.jenkins.io… 192.168.1.100
Connecting to get.jenkins.io|192.168.1.100|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 98765432 (94M) [application/java-archive]
Saving to: ‘jenkins.war’
jenkins.war 100%[===========================================>] 94.18M 25.5MB/s in 4s
# 下载Jenkins LTS版本
$ wget https://get.jenkins.io/war-stable/2.492.3/jenkins.war
# 输出示例如下:
–2026-04-04 10:15:00– https://get.jenkins.io/war-stable/2.492.3/jenkins.war
Resolving get.jenkins.io… 192.168.1.100
Connecting to get.jenkins.io|192.168.1.100|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 95678901 (91M) [application/java-archive]
Saving to: ‘jenkins.war’
jenkins.war 100%[===========================================>] 91.27M 25.5MB/s in 4s
# 验证下载文件
$ java -jar jenkins.war –version
# 输出示例如下:
2.555
4. Docker安装方式
Docker是部署Jenkins最简单的方式。from:www.itpux.com
$ docker pull jenkins/jenkins:lts
# 输出示例如下:
lts: Pulling from jenkins/jenkins
Digest: sha256:abc123def456…
Status: Downloaded newer image for jenkins/jenkins:lts
docker.io/jenkins/jenkins:lts
# 创建数据目录
$ mkdir -p /fgeudb/jenkins/home
# 启动Jenkins容器
$ docker run -d –name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-v /fgeudb/jenkins/home:/var/jenkins_home \
-e JAVA_OPTS=”-Xmx2g -Xms1g” \
jenkins/jenkins:lts
# 输出示例如下:
abc123def456789…
# 查看容器状态
$ docker ps
# 输出示例如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abc123def456 jenkins/jenkins:lts “/usr/local/bin/jenk…” 5 seconds ago Up 4 seconds 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins
# 查看初始密码
$ docker logs jenkins | grep -A 2 “initialAdminPassword”
# 输出示例如下:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
abc123def456789012345678901234567890
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
5. 安装介质说明
Jenkins提供多种安装介质,用户可根据实际需求选择。学习交流加群风哥QQ113257174
安装包类型
WAR包:通用安装包,需要Java运行环境
RPM包:RHEL/CentOS专用
DEB包:Ubuntu/Debian专用
MSI包:Windows专用
Docker镜像:跨平台通用
使用RPM安装(RHEL/CentOS)
# yum install -y java-17-openjdk java-17-openjdk-devel
# 输出示例如下:
Package java-17-openjdk-17.0.10.0.7-1.el7.x86_64 already installed and latest version
Nothing to do
# 添加Jenkins仓库
# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
# 输出示例如下:
–2026-04-04 10:15:00– https://pkg.jenkins.io/redhat-stable/jenkins.repo
Resolving pkg.jenkins.io… 192.168.1.100
Connecting to pkg.jenkins.io|192.168.1.100|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 85 [text/plain]
Saving to: ‘/etc/yum.repos.d/jenkins.repo’
/etc/yum.repos.d/jenkins.repo 100%[===========================================>] 85 –.-KB/s in 0s
# 导入GPG密钥
# rpm –import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
# 安装Jenkins
# yum install -y jenkins
# 输出示例如下:
jenkins | 2.9 kB 00:00:00
jenkins/primary_db | 87 kB 00:00:01
Resolving Dependencies
–> Running transaction check
—> Package jenkins.noarch 0:2.492.3-1.1 will be installed
–> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
jenkins noarch 2.492.3-1.1 jenkins 95 M
Transaction Summary
================================================================================
Install 1 Package
Total download size: 95 M
Installed size: 100 M
Downloading packages:
jenkins-2.492.3-1.1.noarch.rpm | 95 MB 00:00:10
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : jenkins-2.492.3-1.1.noarch 1/1
Verifying : jenkins-2.492.3-1.1.noarch 1/1
Installed:
jenkins.noarch 0:2.492.3-1.1
Complete!
# 启动Jenkins服务
# systemctl start jenkins
# systemctl enable jenkins
# 输出示例如下:
Created symlink from /etc/systemd/system/multi-user.target.wants/jenkins.service to /usr/lib/systemd/system/jenkins.service.
# 查看服务状态
# systemctl status jenkins
# 输出示例如下:
● jenkins.service – Jenkins Continuous Integration Server
Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled)
Active: active (running) since Fri 2026-04-04 10:30:00 CST; 5s ago
Main PID: 12345 (java)
Tasks: 50 (limit: 4915)
Memory: 500.0M
CGroup: /system.slice/jenkins.service
└─12345 /etc/alternatives/java -Djava.awt.headless=true -jar /usr/lib/jenkins/jenkins.war –webroot=/var/cache/jenkins/war –httpPort=8080
6. 系统配置方法
Jenkins安装后需要进行基本配置,以下是常用配置方法。更多学习教程公众号风哥教程itpux_com
配置文件说明
# vi /etc/sysconfig/jenkins
# 主要配置参数
JENKINS_HOME=”/fgeudb/jenkins”
JENKINS_USER=”jenkins”
JENKINS_PORT=”8080″
JENKINS_AJP_PORT=”8009″
JENKINS_DEBUG_LEVEL=”5″
JENKINS_ENABLE_ACCESS_LOG=”no”
JENKINS_HANDLER_MAX=”100″
JENKINS_HANDLER_IDLE=”20″
JENKINS_ARGS=”–webroot=/var/cache/jenkins/war –httpPort=$JENKINS_PORT”
# Java选项
JENKINS_JAVA_OPTIONS=”-Djava.awt.headless=true -Xmx2g -Xms1g -Djenkins.install.runSetupWizard=false”
# 重启服务
# systemctl restart jenkins
# 输出示例如下:
# 查看初始密码
# cat /var/lib/jenkins/secrets/initialAdminPassword
# 输出示例如下:
abc123def456789012345678901234567890
插件安装
$ java -jar jenkins-cli.jar -s http://localhost:8080/ -auth admin:password install-plugin git
# 输出示例如下:
Installing a plugin of git from update center
Installing plugin git from update center
>>> git-plugin-installer Jenkins::Plugin::DynamicInstaller=HASH(0x12345678)
git installed
# 常用插件列表
# Pipeline插件:pipeline-model-definition
# Git插件:git
# Maven插件:maven-plugin
# Docker插件:docker-plugin
# Kubernetes插件:kubernetes
# 重启Jenkins
$ java -jar jenkins-cli.jar -s http://localhost:8080/ -auth admin:password safe-restart
# 输出示例如下:
Restarting Jenkins. Waiting for Jenkins to become available…
Jenkins is fully up and running
7. 生产环境建议
在生产环境中使用Jenkins时,需要考虑以下因素:
性能优化配置
# vi /etc/sysconfig/jenkins
JENKINS_JAVA_OPTIONS=”-Djava.awt.headless=true \
-Xmx4g -Xms2g \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/fgeudb/jenkins/logs/heapdump.hprof \
-Djenkins.install.runSetupWizard=false \
-Dhudson.slaves.WorkspaceList=- \
-Djava.io.tmpdir=/fgeudb/jenkins/tmp”
# 配置工作目录
# mkdir -p /fgeudb/jenkins/{workspace,logs,tmp}
# chown -R jenkins:jenkins /fgeudb/jenkins
# 配置日志轮转
# vi /etc/logrotate.d/jenkins
/fgeudb/jenkins/logs/*.log {
daily
rotate 30
compress
missingok
notifempty
copytruncate
}
# 配置备份
# vi /etc/cron.daily/jenkins-backup
#!/bin/bash
BACKUP_DIR=/fgeudb/backup/jenkins
DATE=$(date +%Y%m%d)
tar -czf $BACKUP_DIR/jenkins-$DATE.tar.gz /fgeudb/jenkins
find $BACKUP_DIR -name “jenkins-*.tar.gz” -mtime +7 -delete
# chmod +x /etc/cron.daily/jenkins-backup
8. Pipeline流水线配置
Jenkins Pipeline是Jenkins的核心功能,以下是常用配置:
Declarative Pipeline示例
# vi Jenkinsfile
pipeline {
agent any
environment {
JAVA_HOME = ‘/usr/lib/jvm/java-17-openjdk’
MAVEN_HOME = ‘/usr/local/maven’
PATH = “${env.JAVA_HOME}/bin:${env.MAVEN_HOME}/bin:${env.PATH}”
}
stages {
stage(‘Checkout’) {
steps {
echo ‘Checking out code…’
git branch: ‘main’, url: ‘https://github.com/fgedu/app.git’
}
}
stage(‘Build’) {
steps {
echo ‘Building application…’
sh ‘mvn clean package -DskipTests’
}
}
stage(‘Test’) {
steps {
echo ‘Running tests…’
sh ‘mvn test’
}
post {
always {
junit ‘**/target/surefire-reports/*.xml’
}
}
}
stage(‘Deploy’) {
when {
branch ‘main’
}
steps {
echo ‘Deploying application…’
sh ‘scp target/app.jar user@192.168.1.51:/fgeudb/app/’
sh ‘ssh user@192.168.1.51 “systemctl restart app”‘
}
}
}
post {
success {
echo ‘Build succeeded!’
emailext subject: ‘Build Success: ${JOB_NAME} #${BUILD_NUMBER}’,
body: ‘Build succeeded. Check console output at ${BUILD_URL}’,
to: ‘admin@fgedu.net.cn’
}
failure {
echo ‘Build failed!’
emailext subject: ‘Build Failed: ${JOB_NAME} #${BUILD_NUMBER}’,
body: ‘Build failed. Check console output at ${BUILD_URL}’,
to: ‘admin@fgedu.net.cn’
}
}
}
多分支Pipeline配置
# 在Jenkins界面中:
# 1. 新建任务 -> Multibranch Pipeline
# 2. 配置Branch Sources -> Git
# 3. 设置Repository URL
# 4. 设置Credentials
# 5. 设置Branch Filter(如:*/main, */develop, */feature/*)
# Pipeline触发配置
# vi Jenkinsfile
pipeline {
agent any
triggers {
cron(‘H/15 * * * *’)
pollSCM(‘H/5 * * * *’)
githubPush()
}
stages {
stage(‘Build’) {
steps {
sh ‘mvn clean package’
}
}
}
}
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
