工具平台 - Jenkins

Jenkins 介绍

  • Jenkins 的前身是 Hudson,采用 Java 编写的持续集成开源工具。
  • Hudson 由 Sun 公司在 2004年启动,第一个版本于2005年在java.net发布。
  • 2007 年开始 Hudson 在构建领域占据领先地位
  • 2010 年,因为 Oracle 对 Sun 的收购带来了 Hudson 的所有权问题。主要的项目贡献者和Oracle之间,尽管达成了很多协议,但有个关键问题就是商标名称 "Hudson"。
  • 甲骨文在 2010 年 12 月声明拥有该名称并申请商标的权利。因此,2011 年 1 月 11 日,有人要求投票将项目名称从 "Hudson" 改为 "Jenkins" 。

2011 年 1 月 29 日,该建议得到社区投票的批准,创建了 Jenkins 项目。

Jenkins 应用场景

  • 集成svn/git客户端实现源代码下载检出
  • 集成maven/ant/gradle/npm等构建工具实现源码编译打包单元测试
  • 集成sonarqube对源代码进行质量检查(坏味道、复杂度、新增bug等)
  • 集成SaltStack/Ansible实现自动化部署发布
  • 集成Jmeter/Soar/Kubernetes/.....
  • 可以自定义插件或者脚本通过jenkins传参运行
  • 可以说Jenkins比较灵活插件资源丰富,日常运维工作都可以自动

Jenkins 架构

  • Master 节点作为协调者,负责与执行节点通信并分派任务
  • Agent 节点任务执行者

Jenkins 的安装

方式一:原生安装包

apt-get install jenkins

方式二:直接运行 jenkins.war

方式三:Docker 或者 Kubernetes 安装

docker run -p 8080:8080 --name myjenkins -v jenkins_home:/var/jenkins_home -v jenkins_downloads:/var/jenkins_home/downloads jenkins/jenkins:lts

Jenkins Web 页面

Jenkins 插件的安装

Jenkins 插件的安装

方式一:官网下载

https://plugins.jenkins.io/ 使用 jenkins-plugin-cli 命令安装

方式二:管理页面安装

​​进入 Jenkins 后台操作,Manage Jenkins ( 系统管理 ) -> Manage Plugins (插件管理) ->Advanced(高级) ->修改Update Site(升级站点):https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

Jenkins Blue Ocean 界面

Master 与 Agent 交互方式

  • SSH

Master 能通过 SSH 直连 Agent,Agent 上启动了 SSHD 服务

  • JNLP Agent 能访问 Master,Agent 需要 JVM 环境运行,Master 需要放开 50000(默认值)端口用于 Agent 通信

  • WebSocket

Agent 能访问 Master,Agent 需要 JVM 环境运行

Jenkins 通过标签选择

  • 标签是什么

当 agent 数量变多时,如何知道哪些 agent 支持JDK 8、哪些 agent 支持Node.js环境呢?

  • 标签能做什么

就是给 agent 节点设置一个过滤的别名,在后续执行 job 的时候,可根据标签名字进行执行节点的分配。

两种流水线使用

  • 自由风格软件项目(FreeStyle Project)

将整个过程分为了源码管理、构建触发器、构建环境、构建、构建后操作等阶段,通过页面进行操作。

  • 流水线项目(Pipeline Project)

通过 Groovy 语言编写 Jenkinsfile 定义流水线,更加灵活。

results matching ""

    No results matching ""