CentOS下Jenkins持续交付实施指南
在开始配置前,需确保CentOS系统满足基础依赖要求:
sudo yum update -ysudo yum install -y java-1.8.0-openjdk-devel(验证:java -version)sudo yum install -y gitsudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker && sudo systemctl enable docker
上述步骤确保系统具备代码托管、构建、容器化部署的基础能力。
推荐通过yum仓库安装(稳定且易维护):
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install -y jenkinssudo systemctl start jenkins && sudo systemctl enable jenkins
访问http://<服务器IP>:8080,输入/var/lib/jenkins/secrets/initialAdminPassword中的初始密码解锁,完成管理员账户创建及插件安装(推荐安装“Git”“Pipeline”“Docker”等插件)。
为了让Jenkins识别Java、Git、Maven等工具,需在“Manage Jenkins”→“Global Tool Configuration”中配置:
/usr/bin/git);配置完成后,Jenkins会在构建时自动调用这些工具。
Pipeline是Jenkins实现持续交付的核心,支持通过代码定义构建、测试、部署流程。以下以声明式Pipeline为例:
https://github.com/your-repo/project.git)及分支(如main);Jenkinsfile(需在项目根目录创建)。在项目根目录创建Jenkinsfile,通过声明式语法定义持续交付流程(以Java项目为例):
pipeline {
agent any // 使用任意可用节点执行
stages {
stage('Checkout') {
steps {
checkout scm // 拉取最新代码
}
}
stage('Build') {
steps {
sh 'mvn clean package' // Maven编译打包(若为Node.js项目,可替换为`npm install && npm run build`)
}
}
stage('Test') {
steps {
sh 'mvn test' // 运行单元测试(可选,根据项目需求调整)
}
}
stage('Deploy to Test') {
steps {
sh 'docker build -t your-app:test . && docker run -d -p 8081:8080 --name test-app your-app:test'
// 构建Docker镜像并运行测试环境容器(若为直接部署war包,可替换为`scp target/*.war user@test-server:/opt/tomcat/webapps/`)
}
}
stage('Deploy to Production') {
when {
branch 'main' // 仅main分支触发生产部署
}
steps {
input message: 'Approve production deployment?', ok: 'Deploy' // 人工确认,避免误操作
sh 'docker stop test-app && docker rm test-app && docker build -t your-app:prod . && docker run -d -p 80:8080 --name prod-app your-app:prod'
// 停止测试容器,构建生产镜像并运行(若为其他环境,调整镜像标签和部署命令)
}
}
}
post {
always {
echo 'Deployment process completed.' // 无论成功失败均执行的步骤
}
success {
mail to: 'team@example.com', subject: 'Deployment Successful', body: "Project ${env.JOB_NAME} build ${env.BUILD_NUMBER} deployed successfully."
// 发送成功通知邮件(需配置SMTP)
}
failure {
mail to: 'team@example.com', subject: 'Deployment Failed', body: "Project ${env.JOB_NAME} build ${env.BUILD_NUMBER} failed. Check logs for details."
// 发送失败通知邮件
}
}
}
上述流程涵盖代码拉取、构建、测试、测试环境部署、生产环境部署(人工确认)及通知环节,可根据项目需求调整阶段和命令。
为实现“代码提交即构建”,需配置Webhook:
http://<Jenkins-IP>:8080/github-webhook/),触发方式为“Just the push event”。此后,当代码推送到指定分支时,Jenkins会自动触发Pipeline执行。
通过以上步骤,即可在CentOS上使用Jenkins实现从代码提交到生产部署的全流程自动化持续交付,提高团队开发效率和交付质量。