centos

CentOS下Jenkins怎样进行持续交付

小樊
59
2025-08-31 01:02:22
栏目: 智能运维

CentOS下Jenkins持续交付实施指南

1. 环境准备

在开始配置前,需确保CentOS系统满足基础依赖要求:

上述步骤确保系统具备代码托管、构建、容器化部署的基础能力。

2. 安装Jenkins

推荐通过yum仓库安装(稳定且易维护):

访问http://<服务器IP>:8080,输入/var/lib/jenkins/secrets/initialAdminPassword中的初始密码解锁,完成管理员账户创建及插件安装(推荐安装“Git”“Pipeline”“Docker”等插件)。

3. 配置Jenkins全局工具

为了让Jenkins识别Java、Git、Maven等工具,需在“Manage Jenkins”→“Global Tool Configuration”中配置:

配置完成后,Jenkins会在构建时自动调用这些工具。

4. 创建Jenkins Pipeline任务

Pipeline是Jenkins实现持续交付的核心,支持通过代码定义构建、测试、部署流程。以下以声明式Pipeline为例:

5. 编写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."  
            // 发送失败通知邮件
        }
    }
}

上述流程涵盖代码拉取、构建、测试、测试环境部署、生产环境部署(人工确认)及通知环节,可根据项目需求调整阶段和命令。

6. 触发自动化构建

为实现“代码提交即构建”,需配置Webhook

此后,当代码推送到指定分支时,Jenkins会自动触发Pipeline执行。

7. 优化与安全建议

通过以上步骤,即可在CentOS上使用Jenkins实现从代码提交到生产部署的全流程自动化持续交付,提高团队开发效率和交付质量。

0
看了该问题的人还看了