培训目标 Training Objectives

  • 掌握 Jenkins 的基础安装、配置、管理

  • 学习 CI/CD 基础、Jenkins 合作 GitHub 实现进程自动化

  • 了解 Jenkins Pipeline 的语法和应用

  • 学习 Jenkins 多节点 (multi-node) 配置和运行


虚拟机 VM 配置 Virtual Machine Setup

  • 建议使用 Google Cloud (GCP),提供 $300 免费 credit,可使用 3 个月

  • 建议选择 Ubuntu 22 或 24版,配置至少 2 CPU + 8GB RAM

  • 打开网络端口 22 (SSH),80 (HTTP),443 (HTTPS),8080 (Jenkins 默认端口)

  • 建议使用 Docker 进行 Jenkins 快速部署


Jenkins 基础安装 Jenkins Basic Installation

  • 使用 Docker 部署 Jenkins,配合 -p 给肉端口映射

    • eg: -p 8080:8080 -p 50000:50000

    • Jenkins 目录映射: /var/jenkins_home

  • 使用 docker run 或 Docker Compose 运行 Jenkins

  • 首次启动时通过 /var/jenkins_home/secrets/initialAdminPassword 解锁

  • 如果使用原生 Ubuntu 安装,需先安装 Java,然后配置 Jenkins 服务

  • 将 Jenkins 用户添加到 sudo 组,方便无密码执行操作


Jenkins 和 GitHub 集成 Jenkins + GitHub Integration

  • 使用 webhook 触发 Jenkins 系列进程

  • 正确配置 GitHub Repo 和 Jenkins 项目 URL

  • 配合 Git 接入 token 或 SSH key 进行信件合作


Jenkins Pipeline 基础 Jenkins Pipeline Basics

  • 语法结构: pipeline -> agent / stages / steps

  • 支持 Declarative 和 Scripted 样式

  • 常用 directive:

    • agent, environment, stage, steps, post, triggers
  • 使用 pipeline syntax 工具快速生成 pipeline 代码

  • 通过 Snippet Generator 生成 checkout/git/docker 等操作

  • 配合 Docker agent 为不同项目选择相应环境

示例 Sample:

pipeline {
agent any
environment {
IMAGE_NAME = 'my-app'
IMAGE_TAG = 'v1.0.0'
}
stages {
stage('Build') {
steps {
echo "Building $IMAGE_NAME:$IMAGE_TAG"
}
}
}
}

Multi-node 部署 Jenkins Multi-node Deployment

  • Jenkins master/slave 结构,便于处理多任务并发

  • 通过 agent label 分配任务到按需节点

  • slave 可通过 SSH 或 JNLP 连接

  • 选择 node 时根据工作类型和资源规划


Jenkins 安全设置和证书 Jenkins Security & Certificate Setup

  • 接入 Let’s Encrypt 免费证书

  • 配合 Nginx 实现 HTTPS 访问 Jenkins

  • 基本流程:

    1. 注册域名(建议使用 GoDaddy 或 AWS Route53)

    2. 配置 A Record 指向 Jenkins 服务器 IP

    3. 配合 Certbot 自动获取证书

    4. 修改 Nginx 配置文件,同时展示 HTTPS 结果

  • Let’s Encrypt 证书有效期 90 天,可配合定时更新


Jenkins 经验分享 Real-world Experience

  • 大型企业常配合 GitHub Action, GitLab CI, Jenkins 联合使用

  • 根据企业经费和实际需求选择相应 CI/CD 工具

  • 虚拟机配置和 SSH 管理是 DevOps 基本技能


实操 Hands-on Summary

  • 实现 Docker 快速部署 Jenkins

  • 建立 Jenkins Pipeline 与 GitHub 集成

  • 配置 multi-node 结构实现并发

  • 学习 Jenkins 证书配置,实现 HTTPS 访问


小结 Conclusion

Jenkins 是当今最流行的 CI/CD 工具之一,配合 Docker 和 Cloud 平台,能够快速搭建自动化部署系统。过程中学习了服务器部署,端口配置,线程形成,实践功能和证书配置,基本培养了 DevOps 工程师必备的能力。