Jenkins 从入门到实践

最近在公司做的 Jenkins 入门介绍

Jenkins 从入门到实践


持续集成/持续交付/持续部署

image

Note:
持续集成是是一种软件开发实践,指开发阶段对项目进行持续性自动化编译、测试,以达到控制代码质量的手段。
持续集成的优点:

  • 快速响应:快速失败,降低修复成本
  • 状态透明:提高工程健康状况能见度
  • 频繁部署:自动化繁杂的手工流程,加快交付速度

Jenkins

<iframe width="560" height="315" src="https://www.youtube.com/embed/VeoLZq2E2JQ?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

Note:
Jenkins 是一个可扩展的 CI 引擎。原名 Hudson
是 Java 编写的本地开源软件
是安装配置和使用最简单的 CI 产品之一


安装部署


安装

  • Windows:直接下载安装包
  • Linux:使用包管理工具
  • Docker:使用现成镜像

Note:
默认情况下,Windows 上使用 system 用户运行(可在系统服务管理中修改),
Linux 上使用 jenkins 用户运行(可通过配置文件修改)
Linux 下需要预先安装 JRE 或 JDK


目录结构

JENKINS_HOME
 +- config.xml     (jenkins root configuration)
 +- *.xml          (other site-wide configuration files)
 +- userContent    (files in this directory will be served under your http://server/userContent/)
 +- fingerprints   (stores fingerprint records)
 +- plugins        (stores plugins)
 +- workspace (working directory for the version control system)
     +- [JOBNAME] (sub directory for each job)
 +- jobs
     +- [JOBNAME]      (sub directory for each job)
         +- config.xml     (job configuration file)
         +- latest         (symbolic link to the last successful build)
         +- builds
             +- [BUILD_ID]     (for each build)
                 +- build.xml      (build result summary)
                 +- log            (log file)
                 +- changelog.xml  (change log)

Note:
备份与迁移: Just copy $JENKINS_HOME


基本操作


首页一览

  • 任务列表和视图
  • 构建状态和队列

Note:
AJAX 即时反馈


系统管理

  • 全局配置
  • 权限验证
  • 插件系统
  • 脚本操作
  • 集群管理

Note:
捋一遍 Manage Jenkins 界面上的选项


Freestyle 任务

  • 触发构建
  • 获取代码
  • 执行流程
  • 结果通知

Pipeline 任务

Jenkins 2.0 的核心特性,为了更好地实现 CD

Note:
Pipeline 就是流水线


Pipeline as Code

  • Groovy DSL
  • 声明式语法
  • 脚本式语法

Note:
举个🌰
带你玩转 Pipeline


Multibranch Pipeline

Note:
Git Plugin 3.6 之后支持按 tag 构建


Jenkinsfile

  • 可以自动创建各 Branch/Tag/PR 的 Pipeline
  • 可签入代码版本管理,便于审查和跟踪
  • Single source of truth

Note:
可在系统配置里设置环境变量


小技巧

  • Snippet Generator
  • Replay
  • Global Pipeline Libraries

Blue Ocean

为 Pipeline 设计的全新界面,易上手,更清晰

  • 可视化
  • 个性化
  • GitHub 集成

The End

构建流程是开发的,也是运维的,但是归根结底是开发的

Note:
DevOps 上还是有很长的路要走

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容