1. 准备Debian环境
在Debian系统上安装Jenkins前,需确保系统包为最新状态,避免依赖冲突:
sudo apt update && sudo apt upgrade -y
2. 安装Java环境(Jenkins依赖)
Jenkins是基于Java的应用程序,需安装Java运行环境(推荐OpenJDK 11及以上):
sudo apt install openjdk-11-jdk -y
# 验证Java安装
java -version
3. 添加Jenkins官方仓库并安装
通过APT包管理器安装Jenkins,确保软件来源安全:
# 导入Jenkins GPG密钥
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
# 添加Jenkins仓库到APT源列表
echo "deb http://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
# 更新包列表并安装Jenkins
sudo apt update && sudo apt install jenkins -y
4. 启动Jenkins服务
启动Jenkins并设置为开机自启,确保服务持续运行:
sudo systemctl start jenkins
sudo systemctl enable jenkins
# 检查服务状态(确认为“active (running)”)
sudo systemctl status jenkins
5. 初始配置Jenkins
首次访问Jenkins需完成解锁和基础设置:
http://<服务器IP>:8080,输入/var/lib/jenkins/secrets/initialAdminPassword文件中的初始密码(通过sudo cat /var/lib/jenkins/secrets/initialAdminPassword获取)。6. 配置Jenkins全局工具(可选但推荐)
若项目需要特定工具(如Maven、JDK),可通过“Manage Jenkins -> Global Tool Configuration”配置工具路径,避免在Pipeline中重复指定:
/usr/lib/jvm/java-11-openjdk-amd64)。/usr/share/maven)。7. 创建Pipeline项目
通过Pipeline实现自动化构建,支持代码托管库(如Git)集成和流程编排:
my-java-project),选择“Pipeline”,点击“OK”。https://github.com/your-repo/my-java-project.git)和凭据(若有私有仓库)。Jenkinsfile,需存放在项目根目录)。8. 编写Jenkinsfile定义自动化流程
在项目根目录创建Jenkinsfile,使用声明式语法定义构建、测试、部署等阶段(以Java Maven项目为例):
pipeline {
agent any
tools {
maven 'Maven 3.6.3' // 关联全局工具配置中的Maven
jdk 'JDK 11' // 关联全局工具配置中的JDK
}
stages {
stage('Checkout') {
steps {
checkout scm // 从Git仓库拉取代码
}
}
stage('Build') {
steps {
sh 'mvn clean package' // 执行Maven构建
}
}
stage('Test') {
steps {
sh 'mvn test' // 执行单元测试
}
post {
always {
junit 'target/surefire-reports/*.xml' // 发布测试报告
}
}
}
stage('Archive Artifacts') {
steps {
archiveArtifacts artifacts: 'target/*.jar', fingerprint: true // 归档构建产物(JAR文件)
}
}
stage('Deploy') {
steps {
// 示例:通过SSH将构建产物部署到远程服务器
sshPublisher(
publishers: [
sshPublisherDesc(
configName: 'remote-server', // SSH配置名称(需提前在Jenkins中创建)
transfers: [
sshTransfer(
sourceFiles: 'target/*.jar',
removePrefix: 'target',
remoteDirectory: '/opt/app'
)
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: true
)
]
)
}
}
}
post {
always {
mail to: 'team@example.com', subject: "Build ${currentBuild.currentResult}: ${currentBuild.fullDisplayName}", body: "Build details: ${env.BUILD_URL}" // 构建结果邮件通知
}
}
}
9. 配置自动化触发器
实现代码提交后自动触发构建,减少手动操作:
http://<Jenkins服务器IP>:8080/github-webhook/(GitHub)或http://<Jenkins服务器IP>:8080/gitlab-webhook/(GitLab),Jenkins会自动监听推送事件并触发构建。H/5 * * * *表示每5分钟检查一次代码变更)。10. 运行与监控构建