温馨提示×

Jenkins在CentOS上如何进行持续集成

小樊
37
2025-12-05 21:15:21
栏目: 智能运维

在 CentOS 上部署 Jenkins 并实现持续集成

一 环境准备与安装

  • 准备一台运行 CentOS 7/8/9 的服务器,建议至少 2 核 CPU、4GB 内存、20GB 磁盘,并确保网络稳定。
  • 安装 Java(Jenkins 为 Java 应用):
    • OpenJDK 11(通用稳定):sudo yum install -y java-11-openjdk-devel
    • 或 OpenJDK 8(部分老项目兼容):sudo yum install -y java-1.8.0-openjdk-devel
  • 添加 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
    • sudo yum install -y jenkins
  • 启动并设置开机自启:
    • sudo systemctl start jenkins
    • sudo systemctl enable jenkins
  • 访问与初始化:浏览器打开 http://服务器IP:8080,首次解锁密码在 /var/lib/jenkins/secrets/initialAdminPassword;随后可选择安装推荐插件并创建管理员账户。

二 基础配置与网络

  • 防火墙放行端口(默认 8080):
    • sudo firewall-cmd --permanent --add-port=8080/tcp
    • sudo firewall-cmd --reload
  • 修改 Jenkins 端口与运行用户(可选):编辑 /etc/sysconfig/jenkins
    • JENKINS_PORT=“8080”(改为需要端口)
    • JENKINS_USER=“jenkins”(确保该用户对 Jenkins 目录有合适权限)
  • 重启使配置生效:sudo systemctl restart jenkins
  • 插件与更新源优化:在 系统管理 → 插件管理 安装常用插件(如 Git、Maven、Docker 等);如需加速,可在 hudson.model.UpdateCenter.xml 配置国内镜像源。

三 创建 CI 任务与触发器

  • Freestyle 任务(通用)
    • 新建任务 → 选择 Freestyle 项目 → 源码管理选择 Git,填写仓库 URL 与分支(如 */main)。
    • 构建触发器:
      • 轮询 SCM:如 **H/5 * * * ***(每 5 分钟检查一次变更)
      • Webhook:在代码托管平台(如 GitLab/GitHub)配置事件推送,指向 Jenkins 的 /github-webhook//gitlab-webhook/(需安装对应插件并启用 CSRF 保护例外)。
    • 构建环境:确保节点已安装 Git、Maven 等工具。
    • 构建步骤:执行构建命令,如 mvn clean package 或自定义脚本。
    • 构建后操作:归档产物(如 target/*.jar)、发布测试报告、发送通知等。
  • Pipeline 任务(推荐,代码即配置)
    • 在项目根目录创建 Jenkinsfile,示例:
      pipeline {
      agent any
      stages {
      stage(‘Checkout’) { steps { git url: ‘https://your-repo-url.git’, branch: ‘main’ } }
      stage(‘Build’) { steps { sh ‘mvn -B -DskipTests clean package’ } }
      stage(‘Test’) { steps { sh ‘mvn test’ } }
      stage(‘Archive’) { steps { archiveArtifacts artifacts: ‘target/*.jar’, fingerprint: true } }
      }
      }
    • 新建任务选择 Pipeline,在 Pipeline 配置中选择 Pipeline script from SCM,指向上述仓库与 Jenkinsfile

四 与 Docker 集成与分布式构建

  • Docker 集成(在 Jenkins 内构建与运行容器)
    • 在 Jenkins 节点安装 Docker,并将 jenkins 用户加入 docker 组:sudo usermod -aG docker jenkins
    • 系统管理 → 插件管理 安装 Docker 插件,在 系统设置 → Docker 添加 Docker 服务器 URL(如 unix:///var/run/docker.sock),测试连接成功后保存。
    • 在任务中使用 Docker Pipeline 或直接在构建步骤执行 docker 命令,实现镜像构建、运行与清理。
  • 分布式构建(多机并行)
    • 系统管理 → 节点管理 新增 Agent 节点,在目标机器安装 Jenkins Agent 并启动连接;
    • 在任务配置中指定 Agent 或使用 标签表达式 实现按标签调度,提高构建吞吐与资源隔离。

五 常见问题与优化建议

  • Java 版本选择:新版本 Jenkins 建议使用 Java 11/17;若项目强依赖 Java 8,可继续使用 OpenJDK 8
  • 权限与目录:若修改了 JENKINS_USER,需同步调整 /var/lib/jenkins、/var/cache/jenkins、/var/log/jenkins 等目录属主与权限,避免启动失败或权限错误。
  • 插件与更新:优先使用官方仓库与推荐插件集;国内环境可配置镜像源提升下载速度。
  • 安全加固:启用 CSRF 保护、为 Jenkins URL 配置反向代理与 HTTPS、最小权限原则分配凭据与权限;Webhook 需正确配置 SecretCSRF 豁免

0