温馨提示×

怎样在centos上实现jenkins自动化部署

小樊
51
2025-10-03 01:19:19
栏目: 智能运维

1. 环境准备:安装基础依赖 在CentOS上实现Jenkins自动化部署前,需先安装Java(Jenkins依赖)、Git(拉取代码)、Docker(可选,简化部署)等工具。

  • 安装Java:Jenkins是基于Java的应用,需安装OpenJDK 1.8及以上版本:
    sudo yum install -y java-1.8.0-openjdk-devel
    java -version  # 验证安装(需显示1.8.0版本)
    
  • 安装Git:用于从代码仓库拉取代码:
    sudo yum install -y git
    git --version  # 验证安装
    
  • 安装Docker(可选):若需用Docker容器部署应用,需提前安装Docker:
    sudo 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
    

2. 安装Jenkins 推荐通过YUM仓库安装(稳定且易管理):

  • 添加Jenkins仓库
    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
    
  • 安装Jenkins
    sudo yum install -y jenkins
    
  • 启动服务
    sudo systemctl start jenkins && sudo systemctl enable jenkins  # 开机自启
    

3. 配置Jenkins 首次访问需解锁并安装必要插件:

  • 解锁Jenkins:访问http://<服务器IP>:8080,输入初始密码(位于/var/lib/jenkins/secrets/initialAdminPassword)。
  • 安装推荐插件:进入“Manage Jenkins”→“Manage Plugins”,安装以下插件:
    • Git Plugin:用于拉取代码;
    • Pipeline Plugin:支持Pipeline as Code;
    • Generic Webhook Trigger Plugin:实现Git Webhook触发构建;
    • SSH Plugin:用于远程执行部署命令(如重启Tomcat)。
  • 配置全局工具:进入“Manage Jenkins”→“Global Tool Configuration”,设置Java、Git路径(若未自动识别):
    • Java:添加JDK路径(如/usr/lib/jvm/java-1.8.0-openjdk);
    • Git:添加Git安装路径(如/usr/bin/git)。

4. 创建Jenkins任务 选择“New Item”→输入任务名称→选择“Pipeline”(推荐,代码化定义流程)→点击“OK”。

  • 配置源码管理:在“Pipeline”→“Definition”中选择“Pipeline script from SCM”,SCM选“Git”,填写仓库URL(如https://github.com/your-repo/your-project.git)和分支(如main)。
  • 配置构建触发器:勾选“Generic webhook trigger”,生成Token(如my-token),后续用于Git Webhook配置。
  • 编写Pipeline脚本:在“Pipeline”→“Script”中输入以下示例(可根据项目调整):
    pipeline {
        agent any
        stages {
            stage('Checkout') {
                steps {
                    git url: 'https://github.com/your-repo/your-project.git', branch: 'main'
                }
            }
            stage('Build') {
                steps {
                    sh 'mvn clean package'  // 若为Java项目,用Maven构建
                }
            }
            stage('Deploy') {
                steps {
                    sh 'scp target/*.war tomcat@your-server:/opt/tomcat/webapps/'  // 复制war包到Tomcat
                    ssh tomcat@your-server 'systemctl restart tomcat'  // 重启Tomcat
                }
            }
        }
    }
    

5. 配置Git Webhook 实现代码推送自动触发Jenkins构建:

  • 获取Jenkins Webhook URL:进入任务→“Configure”→“Generic Webhook Trigger”→复制“Token”(如my-token),拼接URL:
    http://<Jenkins服务器IP>:8080/generic-webhook-trigger/invoke?token=my-token
  • Git仓库配置:进入Git仓库(如GitHub/GitLab)→“Settings”→“Webhooks”→添加Webhook:
    • Payload URL:粘贴上述URL;
    • Content type:选application/json
    • 触发事件:选“Push events”(代码推送时触发)。

6. 测试自动化部署

  • 手动触发:进入Jenkins任务→点击“Build Now”,观察控制台输出(应显示Checkout、Build、Deploy阶段成功)。
  • 自动触发:向Git仓库的main分支推送代码,等待Jenkins自动开始构建(可通过“Build History”查看进度)。

7. 可选优化:使用Docker简化部署 若应用需容器化部署,可在Pipeline中添加Docker步骤(示例):

stage('Build Docker Image') {
    steps {
        sh 'docker build -t your-app:${BUILD_NUMBER} .'  // 构建镜像(需项目中有Dockerfile)
    }
}
stage('Push Docker Image') {
    steps {
        sh 'docker tag your-app:${BUILD_NUMBER} your-dockerhub-id/your-app:latest'
        sh 'docker push your-dockerhub-id/your-app:latest'  // 推送镜像到仓库
    }
}
stage('Deploy to Server') {
    steps {
        sh 'ssh your-server "docker pull your-dockerhub-id/your-app:latest && docker stop your-app || true && docker rm your-app || true && docker run -d -p 8080:8080 --name your-app your-dockerhub-id/your-app:latest"'  // 拉取并运行镜像
    }
}

通过以上步骤,即可在CentOS上实现Jenkins自动化部署,覆盖代码拉取、构建、测试、部署的全流程,提升开发与运维效率。

0