首页主机资讯如何在Linux中使用Jenkins进行CI/CD

如何在Linux中使用Jenkins进行CI/CD

时间2025-11-26 23:15:04发布访客分类主机资讯浏览625
导读:在 Linux 上使用 Jenkins 搭建 CI/CD 的实操指南 一 环境准备与安装 安装 Java 11(Jenkins 官方推荐),并确认版本:sudo apt update && sudo apt install...

在 Linux 上使用 Jenkins 搭建 CI/CD 的实操指南

一 环境准备与安装

  • 安装 Java 11(Jenkins 官方推荐),并确认版本:sudo apt update & & sudo apt install -y openjdk-11-jdk;java -version。
  • 添加 Jenkins 官方仓库 并安装(Debian/Ubuntu 示例):
    curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
    echo “deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/” | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
    sudo apt update & & sudo apt install -y jenkins
  • 启动与开机自启:sudo systemctl start jenkins & & sudo systemctl enable jenkins & & sudo systemctl status jenkins。
  • 防火墙放行端口(若启用防火墙):sudo ufw allow 8080 或 firewall-cmd --permanent --add-port=8080/tcp & & firewall-cmd --reload。
  • 首次访问:打开浏览器进入 http://< 服务器IP> :8080,解锁管理员:sudo cat /var/lib/jenkins/secrets/initialAdminPassword,随后安装推荐插件并创建管理员账户。

二 基础配置与首个流水线

  • 插件建议:安装 Pipeline、Git、Docker、Blue Ocean、SSH Pipeline Steps 等常用插件(Manage Jenkins → Plugins)。
  • 全局工具:在 Manage Jenkins → Global Tool Configuration 配置 JDK、Maven/Gradle、Docker 路径或自动安装。
  • 创建任务:New Item → 选择 Pipeline → 在 “Pipeline” 部分选择 Pipeline script from SCM → SCM 选 Git,填写仓库 URL 与凭证(如 SSH 私钥或用户名/密码)。
  • 触发器:
    • 推荐 Webhook(GitHub:Payload URL 为 http:///github-webhook/,Content type 为 application/json;任务中勾选 “GitHub hook trigger for GITScm polling”)。
    • 备选 SCM Poll:如 “H/5 * * * *” 每 5 分钟轮询。
  • 首个 Jenkinsfile(声明式,位于仓库根目录):
    pipeline {
    agent any
    stages {
    stage(‘Checkout’) { steps { git url: ‘https://github.com/yourorg/yourrepo.git’, branch: ‘main’ } }
    stage(‘Build’) { steps { sh ‘mvn clean package -DskipTests’ } }
    stage(‘Test’) { steps { sh ‘mvn test’; junit ‘**/target/surefire-reports/*.xml’ } }
    }
    }
  • 保存后点击 立即构建,在 “控制台输出” 查看执行日志与排错。

三 常见权限与连通性问题处理

  • Docker 构建时报 “Got permission denied while trying to connect to the Docker daemon socket”:将 jenkins 用户加入 docker 组并重启服务:sudo usermod -aG docker jenkins & & sudo systemctl restart jenkins;验证:sudo su - jenkins -c “docker info”。
  • 代码目录或部署路径无写权限:确保工作空间与部署目标对 jenkins 用户可写(chown/chmod 或在项目目录上调整所属用户/组)。
  • 私有仓库访问:在 Jenkins 的 凭证 中配置 SSH 私钥用户名/密码,并在 SCM/Git 步骤中引用对应 credentialsId
  • 构建代理连通性:如使用 SSH Agent 部署,提前在 “Manage Jenkins → Credentials” 配置服务器私钥,并在流水线中用 sshagent 引用。

四 安全加固与维护要点

  • 身份与授权:启用安全策略,禁用匿名访问;采用 RBAC(如 Role-based Authorization Strategy 插件)按角色分配权限;可集成 LDAP/AD/OAuth
  • 凭证管理:敏感信息统一存入 Credentials,在流水线中用 withCredentials 绑定环境变量,避免硬编码。
  • 系统与插件:遵循 最小权限原则,定期更新 Jenkins 与插件,变更前做好备份与回滚方案。
  • 传输安全:通过 反向代理 + HTTPS(如 Nginx + Let’s Encrypt)对外暴露服务,避免明文传输。

五 扩展场景与建议

  • 多节点与弹性:配置 Jenkins Agent(SSH 或 Kubernetes)扩展并发能力,Master 专注调度与安全管控。
  • 云原生交付:结合 Kubernetes Pluginkubectl/Helm 实现滚动升级与蓝绿发布;在流水线中使用 kubernetesApply 等步骤。
  • 可视化与质量门禁:使用 Blue Ocean 提升可视化体验;在关键阶段加入 单元测试、代码扫描、制品晋级 等质量关卡,失败即阻断发布。
  • 反馈机制:在 post 阶段集成 Slack/邮件 通知,及时告警构建结果。

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


若转载请注明出处: 如何在Linux中使用Jenkins进行CI/CD
本文地址: https://pptw.com/jishu/757225.html
Jenkins在Linux中怎样安全设置 Ubuntu Swagger与其他API工具比较如何

游客 回复需填写必要信息