Jenkins基本概念
- 基于JAVA开源的自动化系统平台
  - 在servlet容器中运行,如apache tomcat
- 提供CI,CD任务及流水线的服务
  - 所有类型的任务:构建、测试、部署等
  - apache ant和apache maven项目以及任意shell脚本和windows批处理命令
- 支持各种SCM源码控制工具
  - git,subversion,cvs,perforce,clearcase,rtc等
- 丰富的插件生态系统支持功能扩展
  - 1400+插件,含SCM,测试,通知,报告,artifact,触发,外部集成等
- 基于web的管理和使用界面
- 源于Hudson
  - Hudson由Sum公司在2004年启动,第一个版本基于2005在java.net发布
  - 2010年11月期间,Oracle对Sun的收购,引起商标权之争
  - 2011年1月29日,项目名称从"hudson"改为"jenkins"

Jenkins的使用原因
- jenkins本身就是一个高度可配置的系统
- 由开发者主导、面向开发者、全开源
- 治理(独立董事会)和社区
- 稳定性
  - LTS长期支持发布线
  - 每三个月发布一次稳定版本
- 插件的平台
  - 1400多件插件

Jenkins的特点
- 免费且开源
- 与Jenkins共享了很多多代码,安装还是挺简单的关键的环境变量可以安全存储
- 支持多个SCM,包括SVM,Mercurial,Git
- 集成了Github和Bitbucket
- 高度可配置
- 资源和教程很多
- 安装运行简单
- 分布式的构建也能高效运行
- 可跨平台部署
- 很多高质量的插件
- 得奖无数
- 庞大的社区
释:SCM http://www.cnblogs.com/itech/archive/2011/08/02/2125032.html

Jenkins工作流程
创建一个项目时,操作选项
- 通用配置
  - 工作空间管理,参数化设置,工具配置等全局管理
- 源码管理
  - 配置代码源
- 构建触发器
  - 与版本控制服务器集成,自动触发构建
  - 或者基于其他项目生成轮询,定时构建
- 构建环境
- 构建
  - 运行shell脚本,python/groovy等脚本,ant/maven/gradle等
- 构建后操作
  - 制品归档
  - 发布JUnit测试结果和javadoc
  - 直接部署到生产或测试环境
  - 电子邮件(或即时工具IM等)通知相关人
  - 触发其他的子任务或者下游任务

Jenkins的使用对象
- jenkins是一个工具,任何人都可以很快上手
- 建议以下团队或个人掌握jenkins
  - 负责建设产品持续集成/交付流水线的人员(SCM,release/DevOps Engineer)
  - 领导敏捷团队的敏捷管理者,希望理解诸如持续集成/交付等概念
  - 在DevOps领域内探索
  - 想成为"jenkins developer"的开发人员、管理人员

Jenkins安装和运行
- 支持以下平台的OS
  - docker
  - war
  - macOS
  - Linux
  - Windows
  - Solaris,OmniOS,SmartOS

安装准备
- 最低硬件需求
  - 256MB内存
  - 1GB磁盘空间(Docker安装方式需要至少10GB)
- 推荐硬件需求
  - 1GB + 内存
  - 50GB + 磁盘空间
- 软件需求
  - Java 8 -JRE/JDK均可
  - 注:Docker方式无需单独安装java

(1).Docker方式
- macOS/Linux

docker run -u root --rm -d -p 8080:8080 --name jenkinsci \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean下载完后执行
- docker exec -it jenkinsci bash

- windows

docker run -u root --rm -d -p 8080:8080 --name jenkinsci ^
-v jenkins-data:/var/jenkins_home ^
-v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean- 打开浏览器 访问http://localhost:8080
- 安装完成后根据向导进行初始化配置

(2).WAR文件安装方式 - 推荐使用
- 本方式适用于任何java的操作系统或者平台
- 下载最新的jenkins war包
  http://mirrors.jenkins.io/war-stable/latest/jenkins.war
- 运行命令

  java -jar jenkins.war #默认使用8080端口java -jar jenkins.war --httpPort=49001 #指定端口

- 打开浏览器访问:http://localhost:8080
- 安装完成后根据向导进行初化配置

(3).WAR文件安装方式 -Java servlet containers
- 本方式适用于Jenkins部署到已经在Java servlet container内
- 可以运行Jenkins的Java servlet container为
  - Glassfish
  - Tomcat
  - JBoss
  - IBM WebSphere
  - Jetty
  - Jonas
  - Weblogic
  - Apache Geronimo 3.0
  - Liberty profile
打开浏览器访问: http://localhost:8080
安装完成后根据向导进行初始化配置

bash-4.4# cat /var/jenkins_home/secrets/initialAdminPassword
f822a0557c364ab0a05a8bb77574a8d0

(4)、windows安装
- 下载最新msi安装文件
  http://mirrors.jenkins.io/windows/latest
- 解压文件,双击msi根据指示进行安装
- 打开浏览器 访问http://localhost:8080

如何安装插件
- 系统管理-插件管理-可选插件(有还没安装)
- 根据需要选择安装的插件
- 点击直接安装或下载待重启安装

job使用介绍
- job类型
- 配置SCM(source code management)
- git/svn
- 构建触发器

主要的Job类型
- freestyle project
  自由风格项目,jenkins最主要的项目类型
- maven project
  maven项目专用,类似freestyle,更简单
- multi-configuration project
  多配置项目,适合需要大量不同配置(环境,平台等)构建
- pipeline
  流水线项目,适合使用Pipeline(workflow)插件功能构建流水线任务,或者使用freestyle project不容易实现的复杂任务
- multibranch pipeline
  多分支流水线项目,根据SCM仓库中的分支创建多个pipeline项目

Freestyle项目
- General
  项目基本配置
  项目名字,描述,参数,禁用项目,并发构建,限制构建默认node等
- Source code managemet
  代码库信息,支持Git,Subversion等
- Build Triggers
  构建触发方式
  周期性构建,poll scm,远程脚本触发构建,其他项目构建结束后触发等
- Build Environment
  构建环境相关设置
  构建前删除workspace,向Console输出添加时间戳,设置构建名称,插入环境变量等
- Build
  项目构建任务
  添加1个或者多个构建步骤
- Post-build Actions
  构建后行为
  Artifact归档,邮件通知,发布单元测试报告,触发下游项目等
注:restrict where this project can run 限定这个项目只能在某个节点上运行

Source Code Manaagement
- git
- Subversion
- 其他80+插件支持其他SCM系统

Git 全局配置
- Build Node上安装Git tool
- Global Tool Configuration配置

常用的Triggers
- Build periodically
  设定类似Cron周期性时间触发构建
- Poll SCM
  设定类似Cron周期性时间触发检查代码变化,只有当代码变动时才触发构建
- Hooks
  gitlab hooks
  github hooks
- Events
  Gerrit events 时件触发

安全管理策略
- 安全概述
- 认证和授权
- 访问控制
- 忘记密码处理

安全概述
1.X默认配置下,没有开启安全检查(任何人都可以去查看)
2.X默认开启安全检查
Jenkins提供了两种维度的安全策略
- 用户认证
  Security Realm(安全域):决定用户名和密码,且指定用户属于的组(允许的登陆用户)
- 权限控制
  Authorization Strategy(授权策略):分配用户执行某些操作的权限
如何进入Jenkins安全控制界面:
  系统管理(manage jenkins)-->configure global security -->启用安全(enable security)

访问控制详述:
安全域:
Jenkins专有用户数据库:公司中用户比较少的情况
公司规模使用人员多推荐使用AD或者LDAP
Servlet容器代理:比较老的或者容器代理的使用

授权策略:
Role-based strategy:设置创建一定的用户策略,针对不同的用户指定不同的角色,进行不同权限管理
任何用户可以做任何事(没有任何限制):即使没有登陆
安全矩阵:设置一个安全的矩阵,比较复杂,推荐使用
登陆用户可以做任何事:即使是管理员的操作
遗留模式:旧版本使用
项目矩阵授权策略:比较细的授权策略,创建项目的admin可以创建一些比较细的项目级权限限制

忘记密码的处理
如果权限设置错误,或者忘记密码,导致admin自己都无法登陆Jenkins的处理
- 命令行停止Jenkins
- 先备份$JENKINS_HOME中的config.xml
- 用编辑器打开$JENKINS_HOME中的config.xml
- 将<useSecurity>true</useSecurity>元素中的true改为false
- 将<authorizationStrategy>和<securityRealm>元素的内容删掉
- 命令行启动Jenkins

jenkins分布式构建
描述: 是一个master/slave的方式创建,通过tcp进行通信,对于master要求并不高,可以使用vm,container,服务器等做master或slave

配置分布式构建
1.在master创建分布式构建的节点
  - 系统管理-管理节点-新建节点
  - 标签(输入规范的名称)
  - 注意4种的启动方法
    - java web start: docker或k8s使用比较多
    - execution of command on the master
    - slave agents via ssh
2.配置分布式构建
  - job的配置页面-General
  - Restrict where this project can be run 限定项目只能在某个节点上运行,如ios的项目只能在某一类的服务器中运行
  - 输入标签

规范项目必要配置
注:本规范尤其适用于较多项目共同一jenkins的场景
- 项目命名规范
- 设置项目描述
- 设置历史构建清理规则(节约磁盘空间)
- 设置构建节点Label
- 邮件通知
修改默认显示语言:https://www.jianshu.com/p/f94d617e260e

常用插件
- Jenkins定时的备份:ThinBackup(备份在远程服务器)
- 邮件发送插件:Email Extension Plugin
- 空间清理扩展插件: Distributed Workspace Clean plugin
- Android/IOS设备管理
  - Android Device connector plugin
  - IOS Device connector plugin

转载于:https://www.cnblogs.com/reid21/articles/8853862.html

持续集成之jenkins基础相关推荐

  1. 持续集成之 Jenkins 的安装与配置(一)

    一.持续集成的概念 Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,功能包 ...

  2. 微服务容器部署与持续集成(Jenkins)

    微服务容器部署与持续集成(Jenkins) 一.微服务容器部署 1.Dockerfile 1.1 Dockerfile简介 1.2 使用脚本创建镜像 2.Docker私有仓库 2.1 私有仓库搭建与配 ...

  3. python 持续集成工具_持续集成工具: Jenkins学习

    持续集成工具: Jenkins学习 -- 部分内容收集自网络,如有侵权,请联系作者删除 一. 概念 在过去的开发整体流程中,是所有人写好代码之后统一进行合并(svn,git),然后进行测试,确保准发布 ...

  4. 老李分享:持续集成学好jenkins之Git和Maven配置

    老李分享:持续集成学好jenkins之Git和Maven配置 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请 ...

  5. Jenkins——持续集成及Jenkins介绍和安装配置(插件,用户权限,凭据,Maven安装打包,配置tomcat用户权限)

    持续集成及Jenkins介绍和安装配置 持续集成及Jenkins介绍 软件开发生命周期 持续集成 持续集成的组成要素 持续集成的好处 Jenkins介绍 Jenkins安装和持续集成环境配置 Gitl ...

  6. 【DevOps】持续集成环境-Jenkins安装图文版

    文章目录 前言 Jenkins的安装 1. 环境 2. 安装java 3. 下载Jenkins 4. 安装Jenkins 5. 访问测试 6. 安装插件 7. 创建管理员账号 8. 安装完成: 总结 ...

  7. 持续集成平台Jenkins:docker镜像升级

    Jenkins 2.357 及 LTS 2.361.1之后的版本要求Java 11 或者 17,如果使用的是Java 8,要升级最新版本的Jenkins,就需要升级Java JDK版本,本文记录一下如 ...

  8. 持续集成:Jenkins邮件通知配置方法介绍

    Jenkins的邮件提醒功能主要通过Email Extension插件来实现,它是对Mailer Plugin的扩展,我在持续集成平台Jenkins配置方法介绍中简要介绍了Jenkins的邮件配置方法 ...

  9. Jenkin持续集成部署-Jenkins常用插件篇

    Jenkin持续集成部署-Jenkins常用插件篇 前言 1. maven插件 2. pipeline 3. SSH 4. Docker 5. Blue Ocean 6. 自定义配置JDK 前言 本篇 ...

最新文章

  1. Python Qt GUI设计:QComboBox下拉列表框类(基础篇—14)
  2. 虚拟机linux系统王及密码的破解方式——重设root密码
  3. Linkis1.0下载地址
  4. Android模拟器访问本机服务IP地址
  5. Java获取Object属性值
  6. “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛:I. 丢史蒂芬妮
  7. matlab低通滤波器库函数代码_MATLAB低通滤波器的设计代码
  8. Linux 服务器上安装 ANSYS Fluent 2020R2
  9. 2021-02-24 PMP 群内练习题 - 光环
  10. win10u盘被写保护怎么解除_教你win10系统中u盘被写保护怎么解除
  11. 联想三大业务收入下滑,刘军回归能重振业绩吗
  12. ajax跨域支持post,支持post请求的js跨域方法汇总
  13. C++验证奇偶性时求余运算%和位运算的速度比较
  14. 回首2021,展望2022 | 观成科技步履不停,刻画安全图腾
  15. 社交 APP 唔哩星球完成数百万元天使轮融资,投资方为启明创投
  16. WordPress一款简约轻快且强大的MDx主题
  17. 【python】MAC安装openCV人脸识别
  18. sina vistor system
  19. C语言中的语法错误和语义错误
  20. python中一个等于号和两个等于号_Python中is与双等于号“==”的区别

热门文章

  1. android圆形图形的设置
  2. 读书笔记--《机器人时代》
  3. sql查阅每一月的数据
  4. 理顺 JavaScript (4) - 变量、常量与数据类型
  5. DroidPilot V2.1 手写功能特别版
  6. dropdownlist javascript 取得value text
  7. 脑动力:C语言函数速查效率手册(附DVD光盘1张) [平
  8. p_re 实验数据库ViPER和ETHZ的下载地址和实验评价标准
  9. Java机器学习库ML之七分类预测输出概率值
  10. Hadoop多用户作业调度器和安全机制的自我总结