linux

Jenkins如何在Linux上部署应用

小樊
52
2025-10-11 19:40:37
栏目: 智能运维

1. 准备Linux环境
确保Linux系统(如Ubuntu/Debian/CentOS)满足Jenkins基础要求:安装Java(推荐JDK 11+,通过java -version验证),并配置网络(允许Jenkins默认端口8080通过防火墙,如Ubuntu用sudo ufw allow 8080、CentOS用sudo firewall-cmd --add-port=8080/tcp --permanent && sudo firewall-cmd --reload)。

2. 安装Jenkins

3. 配置Jenkins基础设置

4. 配置Jenkins与版本控制集成
若使用Git管理代码,需添加Git凭证(Manage Jenkins → Credentials → System → Global credentials,点击“Add Credentials”,选择“Git Username with password”或“SSH Username with private key”,输入Git账号信息);若使用GitHub/GitLab,可配置Webhook(Manage Jenkins → Configure System,添加GitHub/GitLab服务器,填写API Token,实现代码推送自动触发构建)。

5. 编写Pipeline脚本
Pipeline是Jenkins实现CI/CD的核心,推荐使用声明式Pipeline(结构清晰、易维护),脚本需包含agent(指定执行节点,如any表示任意节点)、stages(定义多阶段流程)、steps(具体执行命令)。示例如下:

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', url: 'https://github.com/your-repo/your-project.git' // 拉取代码
            }
        }
        stage('Build') {
            steps {
                sh './mvnw clean package' // Maven构建(Java项目)
                // 或 sh './gradlew build' // Gradle构建
                archiveArtifacts 'target/*.jar' // 归档构建产物(如JAR文件)
            }
        }
        stage('Test') {
            parallel {
                stage('Unit Test') {
                    steps { sh './mvnw test' } // 单元测试
                }
                stage('SonarQube Analysis') {
                    steps {
                        withSonarQubeEnv('sonar-server') { // 集成SonarQube代码质量分析
                            sh './mvnw sonar:sonar'
                        }
                    }
                }
            }
        }
        stage('Deploy') {
            when { branch 'main' } // 仅main分支触发生产部署
            steps {
                script {
                    if (params.RUN_TESTS) { // 参数化构建:是否执行测试
                        sh "./run_cypress_tests ${params.ENVIRONMENT}" // 运行端到端测试
                    }
                    sh 'kubectl apply -f k8s/deployment.yaml' // 使用Kubernetes部署(需提前配置kubectl)
                    // 或 docker.withRegistry('https://registry.example.com', 'docker-creds') { // Docker部署
                    //     docker.image("myapp:${env.BUILD_ID}").push()
                    // }
                }
            }
        }
    }
    post {
        always {
            junit 'target/surefire-reports/*.xml' // 发布测试报告
        }
        failure {
            mail to: 'team@example.com', subject: 'Jenkins构建失败', body: '请检查构建日志' // 失败通知
        }
    }
}

将脚本保存为Jenkinsfile,放入项目根目录(与代码一起提交到版本控制)。

6. 创建Jenkins Job并关联Pipeline

7. 部署到目标环境
根据项目需求选择部署方式:

8. 监控与优化

0
看了该问题的人还看了