首页主机资讯如何使用Linux Jenkins进行持续集成

如何使用Linux Jenkins进行持续集成

时间2025-11-24 22:11:04发布访客分类主机资讯浏览1039
导读:在 Linux 上使用 Jenkins 搭建持续集成 一 环境准备与安装 安装 Java 8/11(Jenkins 运行依赖),例如在 CentOS/RHEL 上执行:sudo yum install -y java-11-openjdk...

在 Linux 上使用 Jenkins 搭建持续集成

一 环境准备与安装

  • 安装 Java 8/11(Jenkins 运行依赖),例如在 CentOS/RHEL 上执行:sudo yum install -y java-11-openjdk-devel;在 Ubuntu/Debian 上执行:sudo apt update & & sudo apt install -y openjdk-11-jdk。完成后用 java -version 验证。
  • 安装 Jenkins(二选一):
    • 包管理安装(推荐)
      • Ubuntu/Debian:
        wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
        sudo sh -c ‘echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list’
        sudo apt update & & sudo apt install -y jenkins
      • CentOS/RHEL:
        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
    • Docker 运行(可选):docker pull jenkins/jenkins:lts,后续通过卷挂载 JENKINS_HOME 与宿主机工具链。
  • 启动与开机自启:sudo systemctl start jenkins & & sudo systemctl enable jenkins;访问 http://服务器IP:8080 进入初始化页面。
  • 防火墙放行:
    • firewalld:sudo firewall-cmd --permanent --add-port=8080/tcp & & sudo firewall-cmd --reload
    • ufw:sudo ufw allow 8080

二 初始化与安全配置

  • 解锁与插件安装:首次访问 http://IP:8080,从 /var/lib/jenkins/secrets/initialAdminPassword 读取初始密码并填入;选择 Install suggested plugins 安装常用插件(如 GitMaven Integration 等)。
  • 创建管理员账户,完成向导。
  • 全局工具与凭据:进入 系统管理 → 全局工具配置,配置 JDK、Git、Maven(可勾选自动安装);在 系统管理 → 管理凭据 中添加 Git/仓库账号SSH 私钥 等。
  • 系统配置要点:在 系统管理 → 系统设置 可配置 Jenkins URL、邮件通知、工作空间/构建日志目录 等;如使用 Tomcat 部署,可将 WAR 放入 webapps 并启动 Tomcat。

三 创建 CI 任务与触发器

  • Freestyle 任务(通用)
    • 源码管理:选择 Git,填写仓库 URL 与分支(如 */main)。
    • 构建触发器:
      • 轮询 SCM:日程表达式如 **H/5 * * * *** 表示每 5 分钟检查一次提交;
      • Webhook:在代码托管平台配置 Push/PR 事件回调到 http://JENKINS_URL/github-webhook/(或 GitLab 等效路径),实现提交即触发。
    • 构建步骤:选择 Invoke top-level Maven targets,目标为 clean package;或执行 Shell 脚本(如运行测试、打包、归档产物)。
    • 构建后操作:可归档 .jar/.war、发布 JUnit 报告、发送 邮件/企业微信/钉钉 通知。
  • Pipeline 任务(推荐,可版本化管理流程)
    • 新建 “Pipeline”,在 Pipeline 脚本 中使用如下示例(按项目调整仓库与命令):
      pipeline { agent any tools { maven ‘Maven-3’ jdk ‘JDK-11’ } // 与全局工具配置中的名称保持一致 stages { stage(‘Checkout’) { steps { git branch: ‘main’, url: ‘https://github.com/example/project.git’ } } stage(‘Build’) { steps { sh ‘mvn -B -DskipTests clean package’ } } stage(‘Test’) { steps { sh ‘mvn test’ } post { always { junit ‘/target/surefire-reports/*.xml’ } } } stage(‘Archive’) { steps { archiveArtifacts artifacts: '/target/*.jar’, fingerprint: true } } } post { success { echo ‘Build succeeded.’ } failure { echo ‘Build failed.’ } } }
      上述流程覆盖 拉取代码 → 构建 → 测试 → 报告 → 归档 的完整 CI 链路。

四 部署与扩展

  • 远程部署与发布:安装 Publish Over SSH 插件,在 系统设置 配置 SSH 服务器,在任务 构建后操作 中使用 “Send build artifacts over SSH” 将产物发布到测试/生产主机(可配合脚本执行重启)。
  • 分布式构建:在 系统管理 → 节点管理 添加 Agent,将耗时任务分发到多台机器,提高并发与隔离性。
  • 容器化与宿主工具链:若需在容器内执行 docker build/push,可将宿主机的 /var/run/docker.sock/usr/bin/docker 挂载到 Jenkins 容器,并在容器内安装 Docker CLI。

五 维护与优化

  • 性能与稳定性:在 JENKINS_JAVA_OPTIONS 中合理设置 -Xms/-Xmx(如 -Xms1g -Xmx2g),避免 OOM;为 Maven 配置 settings.xml(镜像源、私有仓库)。
  • 磁盘与历史:在任务配置中启用 构建保留策略(如保留最近 10 次),定期清理工作空间与旧日志。
  • 安全加固:启用 CSRF 保护、最小权限的 RBAC、限制 代理到 Master 的权限、对外仅暴露必要端口(如 8080/443),并定期升级 Jenkins 与插件

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何使用Linux Jenkins进行持续集成
本文地址: https://pptw.com/jishu/754922.html
如何监控Linux Jenkins状态 如何解决Linux Jenkins常见问题

游客 回复需填写必要信息