Jenkins CICD 教程总结
培训目标 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
- eg:
- 使用
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 { |
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
- 基本流程:
- 注册域名(建议使用 GoDaddy 或 AWS Route53)
- 配置 A Record 指向 Jenkins 服务器 IP
- 配合 Certbot 自动获取证书
- 修改 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 工程师必备的能力。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xiaotan's Blog!
评论