1. 环境准备:安装Java环境
Jenkins依赖Java运行时环境(JRE),需先在Debian系统上安装OpenJDK 11(或更高版本)。执行以下命令完成安装:
sudo apt update
sudo apt install -y openjdk-11-jdk
# 验证Java安装
java -version
确保输出显示Java版本信息,否则需检查网络或软件源配置。
2. 安装Jenkins:添加官方仓库与安装包
通过Jenkins官方仓库安装最新稳定版,避免第三方源的兼容性问题:
# 下载并添加Jenkins GPG密钥(用于验证软件包完整性)
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
# 添加Jenkins官方软件源
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 -y jenkins
安装完成后,Jenkins服务会自动启动。
3. 启动与基础配置:解锁Jenkins并设置管理员账户
首次访问Jenkins需完成初始化配置:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
http://<服务器IP>:8080,输入上述密码完成解锁。4. 配置Jenkins:安装必备插件与安全设置
为支持自动化部署,需安装核心插件并调整安全配置:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json),加速插件下载。5. 创建自动化部署流水线:声明式Pipeline与Jenkinsfile
采用声明式Pipeline(推荐)定义自动化流程,将流水线脚本纳入版本控制(如Git),实现“代码即流水线”。
my-app-deploy),选择“Pipeline”,点击“OK”。https://github.com/your-repo/my-app.git),并通过“Credentials”添加Git访问凭据(如SSH密钥)。Jenkinsfile,定义流水线的agent(执行节点)、stages(阶段)及steps(步骤)。示例如下:pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm // 拉取代码(与SCM配置关联)
}
}
stage('Build') {
steps {
sh 'mvn clean package' // Maven构建Java项目(根据项目类型调整命令)
}
}
stage('Test') {
steps {
sh 'python -m pytest tests/' // 运行单元测试(示例为Python项目)
}
}
stage('Deploy') {
steps {
sshPublisher( // 通过SSH将构建产物部署到远程服务器
publishers: [
sshPublisherDesc(
configName: 'production-server', // 事先配置的SSH服务器别名(Manage Jenkins → Credentials → System → Global credentials)
transfers: [
sshTransfer(
sourceFiles: 'target/*.jar', // 本地构建产物路径
removePrefix: 'target', // 移除前缀后上传
remoteDirectory: '/opt/app/deploy' // 远程服务器部署目录
)
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: true
)
]
)
}
}
}
post {
always {
echo 'Deployment process completed.' // 构建完成后输出日志
}
success {
mail to: 'team@example.com', subject: "Build Success: ${currentBuild.fullDisplayName}", body: "The deployment of ${currentBuild.fullDisplayName} succeeded." // 发送成功邮件
}
failure {
mail to: 'team@example.com', subject: "Build Failed: ${currentBuild.fullDisplayName}", body: "The deployment of ${currentBuild.fullDisplayName} failed." // 发送失败邮件
}
}
}
注:需提前在Jenkins中配置SSH服务器凭据(Manage Jenkins → Credentials → System → Global credentials → Add Credentials),并创建对应的configName(如production-server)。6. 触发自动化部署:Webhook或定时任务
实现代码变更自动触发流水线,常见方式有两种:
http://<服务器IP>:8080/github-webhook/),选择“Just the push event”,保存后,每次代码推送都会自动触发Jenkins流水线。H/5 * * * *表示每5分钟检查一次代码变更),定期触发流水线。7. 可选优化:高可用性与监控
docker run -d --name jenkins-agent \
-v /var/run/docker.sock:/var/run/docker.sock \
-e JENKINS_URL=http://master-ip:8080 \
jenkins/jenkins-agent
其中master-ip为Jenkins Master服务器的IP地址。http://your-service.com/health),通过Jenkins的“Execute shell”步骤或邮件插件发送报警通知(如企业微信、钉钉)。