温馨提示×

如何在CentOS上集成Jenkins与其他工具

小樊
42
2025-12-31 10:34:37
栏目: 编程语言

在 CentOS 上集成 Jenkins 与常用工具的实操指南

一 环境准备与基础安装

  • 安装 JDK 8/11(Jenkins 2.x 建议使用 Java 11),并配置 JAVA_HOME
  • 添加 Jenkins 官方 YUM 源并安装:
    • 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 enable --now jenkins
  • 开放防火墙端口(如 8080):firewall-cmd --add-port=8080/tcp --permanent && firewall-cmd --reload
  • 首次访问 http://<服务器IP>:8080,按提示完成解锁与插件安装。

二 与 Git 和 Maven 的集成

  • 安装工具:sudo yum install -y git maven;在 Jenkins 的 Manage Jenkins → Global Tool Configuration 中配置 JDK、Git、Maven 的安装路径。
  • 配置 Git 凭据:
    • HTTPS:使用 Username with password
    • SSH:在 Jenkins 服务器生成密钥对,将公钥添加到 Git 仓库(GitHub/GitLab/Gitee),Jenkins 中用 SSH Username with private key
  • 创建任务(Freestyle 或 Pipeline):
    • 源码管理选择 Git,填写仓库 URL 与分支(如 */main);
    • 构建步骤选择 Invoke top-level Maven targets(如 mvn clean package);
    • 构建后操作可 Archive artifactsPublish JUnit test result report
  • 触发方式:
    • 轮询 SCM:如 **H/5 * * * ***;
    • Webhook:在 GitHub/GitLab/Gitee 仓库设置 Webhook 指向 http:///github-webhook/(或相应插件提供的路径)。

三 与 Docker 的集成

  • 宿主机安装 Docker 并将 jenkins 用户加入 docker 组:
    • sudo yum install -y docker && sudo systemctl enable --now docker
    • sudo usermod -aG docker jenkins && newgrp docker
  • 方式 A(推荐)Docker-in-Docker:运行容器时挂载 Docker 套接字
    • docker run -d --name jenkins -p 8080:8080 -p 50000:50000 \ -v /var/run/docker.sock:/var/run/docker.sock -v jenkins-data:/var/jenkins_home jenkins/jenkins:lts
  • 方式 B 直接在宿主机使用 Docker:确保 Jenkins 能执行 docker 命令(上一步的 docker 组)。
  • 插件与流水线:安装 Docker Pipeline、Docker Compose 插件;在 Pipeline 中使用 docker.build、withRegistry、docker.image().inside 等步骤;推送到镜像仓库时使用 withCredentials 管理凭据。

四 远程部署与通知集成

  • 远程部署(SSH 到目标主机):
    • 安装 Publish Over SSH 插件;在 系统配置 中添加目标主机的 SSH 连接信息
    • 在 Job 的构建后操作选择 Send build artifacts over SSH,配置源文件、目标路径与执行命令(如 systemctl restart app)。
  • 容器化应用发布到 Tomcat:
    • 安装 Deploy to container 插件;在 Tomcat 的 tomcat-users.xml 中创建具备 manager-script 角色的账号;
    • 在 Job 构建后使用 Deploy 插件将 WAR 部署到目标 Tomcat。
  • 通知集成:
    • Slack:安装 Slack Notification 插件,在系统配置添加 Webhook URL,在 Job 的构建后操作添加通知;
    • GitHub/Gitee:安装 GitHub/Gitee 插件,配置 API Token,在构建后操作发送状态回仓库。

五 安全与排错要点

  • 权限最小化:Jenkins 以 jenkins 用户运行,避免 root;Docker 集成时谨慎挂载 /var/run/docker.sock,必要时采用代理或 rootless Docker。
  • 凭据管理:优先使用 Credentials BindingSSH 密钥,避免明文密码;镜像仓库推送使用 withCredentials
  • 防火墙与 SELinux:开放 8080/50000 等端口;如启用 SELinux,按需设置布尔值或策略以允许 Jenkins 执行 Docker/SSH。
  • 日志排查:
    • Jenkins:/var/log/jenkins/jenkins.log
    • Docker:journalctl -u docker -f
    • 构建日志:在 Job 页面查看 Console Output 定位失败阶段。

0