jenkins各个功能详细介绍
系统配置

从页面上我们也能看出系统配置主要是配置jenkins的全局配置和路径配置
- 系统消息:系统消息一般作为通知使用,配置过系统消息后会在全局网站顶部进行展示

- 执行器数量:执行器数量表示在构建的时候最多能同时支持多少个构建。一般不要超过宿主机的CPU核心数。
- 标签:给jenkins服务器设置一个标签,后期可以通过便签选择器进行选择要构建的节点。
- 用法:控制Jenkins如何在这台机器上安排构建.
- 尽可能的使用这个节点这是默认和常用的设置. 在这种模式下,Jenkins会尽可能的使用这个节点.任何时候如果一个构建能使用这个节点构建,那么Jenkins就会使用它.
- 只允许运行绑定到这台机器的Job这种模式下,Jenkins只会构建哪些分配到这台机器的Job. 这允许一个节点专门保留给某种类型的Job.例如,在Jenkins上连续的执行测试,你可以设置执行者数量为1,那么同一时间就只会有一个构建, 一个实行者不会阻止其它构建,其它构建会在另外的节点运行
- 静默期: 如果设置此选项,一个计划中的构建在开始之前需要等待选项中设置的秒数。
- SCM签出重试次数:当拉取远程仓库数据失败时重试次数,这里是全局配置,每个job内部可以单独设置,局部优先级大于此处全局设置
- 默认视图:当用户访问http://JENKINS_URL/时,默认进入哪个视图
- 工程命名限制:jenkins的job命名规范限制:
- 模式
- 命名策略定义(正则表达式)模式,用于检查命名是否有效。
- 描述:当用户输入的名字不符合规范时的提示信息
- 影响已经存在:该选项不影响任务的执行,只会在保存的时候做验证。
- 默认设置,允许用户选择任意合法的命名。

新建任务如果不符合规范会报错误:

- 模式
- Jenkins Location:
- Jenkins URL:定义jenkins的URL,后续 邮件,钉钉等通知消息会依赖此URL
- 系统管理员邮件地址: Jenkins发送邮件通知时的发件人。
- Serve resource files from another domain:
- Resource Root URL:Jenkins 静态资源地址,通常是提供一个免鉴权访问静态资源的地址。这个URL的域名需要和jenkins进行区分
- 两个不同的域指向同一个 Jenkins 实例
- 设置Resource Root URL后,Jenkins 将仅通过资源根 URL 来处理资源 URL 请求。所有其他请求都将收到 HTTP 404 Not Found 响应。
- 资源 URL 不需要身份验证
- jenkins生成的临时URL默认 30 分钟后过期
- Resource Root URL:Jenkins 静态资源地址,通常是提供一个免鉴权访问静态资源的地址。这个URL的域名需要和jenkins进行区分
- Disk Space Monitoring Thresholds: 设置slave节点磁盘监控
- Free Disk Space Threshold 正常运行所需的最小可用磁盘空间量
- 少于阈值,则会将其标记为暂时离线。
- 设置为 0 表示禁用此检查
- 如果slave节点设置为空以使用全局定义的值。
- Free Disk Space Warning Threshold
- 少于阈值,会显示警告,但不会离线。
- 设置为 0 表示禁用此检查
- 如果slave节点设置为空以使用全局定义的值。
- Free Temp Space Threshold slave的workspace可用空间检查
- 少于阈值,则会将其标记为暂时离线。
- 设置为 0 表示禁用此检查
- 如果slave节点设置为空以使用全局定义的值。
- Free Temp Space Warning Threshold
- 少于阈值,则会将其标记为暂时离线。
- 设置为 0 表示禁用此检查
- 如果slave节点设置为空以使用全局定义的值。
- Free Disk Space Threshold 正常运行所需的最小可用磁盘空间量
- 工具位置:设置常用工具的位置,比如git命令、sonar-scan的路径等等,jenkins会检测你输入的目录是否存在
- 环境变量: 全局的环境变量,在所有节点都会生效
- Pipeline Speed / Durability:pipeline在执行步骤时持久化模式
- None 默认: 每一步都写入数据,使用原子写入来保证完整性。提供最大程度地保留正在运行的管道数据,并在 Jenkins 发生故障时恢复。
- Performance-optimized 性能优化: 避免每一步都写入数据,避免数据的原子写入。如果 Jenkins 完全关闭,管道可以恢复,但如果 Jenkins 意外失败,正在运行的管道将丢失步骤信息,并且无法恢复。
- Less durability 每一步都写入数据,但避免原子写入。在某些文件系统上,这比最大持久性模式更快,但如果磁盘写入中断或失败,正在运行的管道数据可能会丢失。
- Maximum durability 持久化程度高,但是速度慢: 每一步都写入数据,使用原子写入来保证完整性。提供最大程度地保留正在运行的管道数据,并在 Jenkins 发生故障时恢复。
- Fingerprints 指纹清理操作:在 Jenkins 上有相互依赖的项目时,通常很难跟踪文件的哪个版本由该文件的哪个依赖版本使用。Jenkins 支持文件指纹识别来跟踪依赖项。Jenkins可以跟踪哪次构建产生了哪些jar,以及哪些构建使用了哪些版本的jar等等。这甚至适用于Jenkins之外产生的jar,指纹可以在构建后操作→增加构建后操作步骤→Record fingerprints of files to track usage
- Global Build Discarders:为全局job设置默认清理规则
- Notification URL:在媒介(email、钉钉等)中默认通知的URL,设置Default 即可
- Shell executable:设置shell执行的路径,一般不用设置,除非你的系统环境变量PATH没有指定 bash 路径
全局工具配置
配置全局工具的路径,比如 Maven,JDK,Git,Gradle,Ant,Docker,等,如果系统内部没有安装可以设置自动安装
在 Jenkins 上用到的工具可以是 【全局工具配置】或者自己离线安装然后配置环境变量,但是这两种方式请二选一,如果你既设置了【全局工具配置】又自己添加了环境变量,可能会产生奇怪问题。
插件管理

如果遇到网络问题无法下载插件,或者列表内的插件不支持目前jenkins版本,可以在 https://plugins.jenkins.io/ 搜索插件指定的版本下载后,在插件设置--高级设置(Advanced setting) 将已经下载的插件进行上传。
节点和云管理

为了保证jenkins的稳定性,一般建议将jenkins服务架构设置成分部署,即每种构建类型的机器单独设置成一个节点,通过调度不同的节点标签进行分发构建任务。
全局安全配置
- 不要记住我: 如果勾选则在jenkins登录界面 保持登录状态按钮就会消失
- 安全域:设置用户认证数据来源,默认是Jenkins内部数据库,可以和ldap插件进行集成使用ldap账号进行登录系统
- 授权策略:设置用户登录后的权限,Jenkins自身的权限策略不完善,一般配合Role-based Authorization Strategy 插件进行做矩阵
- 标记格式器:在jenkins显示用户提供的有关作业、视图或构建等对象的描述。默认以文本形式呈现,可以与OWASP Markup Formatter 插件配合实现html格式描述展示。
- TCP port for inbound agents:jenkins与 slave节点使用Java WEB代理方式通信的端口,如果需要SSH方式连接slave节点 可以安装SSH Build Agents
- 跨站请求伪造保护:
- 跨站请求伪造保护启用代理兼容的作用: Jenkins 跨站请求伪造保护(Cross-Site Request Forgery Protection)启用代理兼容的作用是确保 Jenkins 服务器能够通过代理服务器接收和处理来自客户端的请求,同时防止恶意请求伪造(CSRF)攻击。当 Jenkins 启用了 CSRF 保护功能时,它会生成一个随机的 CSRF 令牌(nonce),并将其存储在用户的浏览器会话中。当用户提交表单或执行其他需要身份验证的操作时,Jenkins 会要求用户提供该令牌以验证请求的合法性。如果提供的令牌与服务器上存储的令牌匹配,则请求被视为合法的,否则将被拒绝。启用代理兼容意味着 Jenkins 将检查 HTTP 请求头中的 “Origin” 字段,以确保请求来自于预期的源。这有助于防止 CSRF 攻击,因为攻击者无法通过代理服务器伪装来自合法来源的请求。
- 隐藏的安全警告: 在这里你可以设置jenkins页面上弹出的警告信息。
凭据
首先jenkins管理页面默认是没有凭据按钮的,需要添加安装凭据插件, Jenkins的Credentials直译为证书、文凭,我们可以理解为它是钥匙,用来做某些事情的认证。如Jenkins 和 GitLab交互时,需要添加GitLab的API令牌和登录凭证。如Jenkins 添加从节点时,需要添加从节点的登录凭证或者Jenkins主机的密钥。
我们通过凭据来认证是合法用户。在jenkins中,我们通过凭据来管理这些相关的凭据,方便后续的使用。
添加凭据
添加用户名&密码形式的凭据
这种方式比较简单。在Jenkins上添加GitLab服务器的登录凭据和添加新节点的登录凭据都可采用这种方式。
- 进入凭据管理,在全局下拉中点击 Add credentials(添加凭据)
- 选择 Username with password 类型,输入 Gitlab账号和密码,点击 Create
添加密钥形式的凭据
有的时候,通过账号名和密码的凭据可能无法使用,这个时候,就要用到SSH这种形式的凭据了。
- 先安装一个插件:SSH Agent,并重启jenkins
- 配置启用SSH server
jenkins -- 系统管理 -- 全局安全配置,把SSH Server设置为启用(默认禁用),点击应用和保存 - jenkins 主机生成SSH密钥
- 添加jenkins主机SSH私钥key作为凭据
- 添加凭据
添加GitLab API令牌形式的凭据
- 在全局下拉中点击 Add credentials(添加凭据)
- 选择 Gitlab API 令牌 类型,输入 Gitlab私人令牌,点击 Create
JenkinsUI详细介绍
jenkins主页UI说明
仪表盘

仪表盘是Jenkins的首页,提供了一个概览视图,显示了当前的构建状态、任务统计、系统消息等。
仪表盘上显示了最近的构建记录、正在运行的任务、待执行的任务等信息。
可以通过仪表盘快速访问常用的任务、视图和配置页面。
任务视图(View)

Jenkins支持创建多个任务视图,每个视图可以包含一组相关的任务。
默认的"All"视图显示了所有的任务,可以根据需要创建自定义视图。
视图可以根据任务的名称、类型、状态等条件进行过滤和分组。
注意,“All”视图需要创建第一个任务后才会出现。
任务详情页(Job Page)

每个任务都有一个详情页,显示了任务的配置、构建历史、工作空间等信息。
在任务详情页可以触发新的构建、查看构建日志、修改任务配置等。
任务详情页还提供了一些快捷操作,如启用/禁用任务、删除任务等。
构建历史(Build History)

构建历史显示了一个任务的所有构建记录,包括构建编号、状态、持续时间、触发者等信息。
可以通过构建历史页面访问每次构建的详细信息,如构建日志、测试结果、工件等。
构建历史还提供了一些统计信息,如成功率、平均持续时间等。
系统管理(Manage Jenkins)

系统管理页面提供了对Jenkins系统的配置和管理功能。
可以在系统管理页面配置全局设置、管理插件、管理节点、备份和恢复等。
系统管理页面还提供了一些工具和诊断功能,如系统信息、脚本控制台等。
用户配置(People)
用户配置页面显示了Jenkins中的用户列表,包括用户名、全名、邮箱等信息。
可以在用户配置页面添加、删除和管理用户账号。
插件管理(Manage Plugins)
插件管理页面用于管理Jenkins的插件。
可以在插件管理页面浏览可用的插件、安装新插件、更新已安装的插件等。
插件管理页面还提供了插件的详细信息,如插件的描述、版本、兼容性等。
构建队列(Build Queue)
构建队列显示了当前正在等待执行的任务列表。
可以在构建队列页面查看每个任务的优先级、预估等待时间等信息。
系统日志(System Log)
系统日志记录了Jenkins的内部事件和错误信息。
可以在系统管理页面访问系统日志,查看Jenkins的运行状态和诊断问题。
系统日志支持不同的日志级别,可以根据需要调整日志的详细程度。
系统信息(System Information)

系统信息页面提供了Jenkins的版本、系统属性、环境变量等详细信息。
可以在系统信息页面查看Java版本、操作系统、环境变量等关键信息。
系统信息对于诊断和调试Jenkins问题非常有帮助。
Job内部配置说明
我们这里创建一个01_helloword的job,使用jenkins打印HelloWord
在jenkins中每个项目都被称作 job。我们在触发这个job运行时,jenkins会将对应的job的名称映射成 JOB_BASE_NAME 的值。
首先我们创建一个job。
创建jenkins job

通用配置
- 描述: 对于这个job的功能描述,配置后可以在job主页面上展示。
- Enable: 是否启用该job。默认启用,如果设置成禁用则没有
- 丢弃旧的构建:何时删除构建历史记录(构建记录包括控制台输出、存档的工件以及与特定构建相关的任何其他元数据)
Jenkins构建后会生成历史记录,默认存放在如下目录 ${JENKINS_HOME}/jobs/${JOB_NAME}/builds/目录下 缺省这个选项不会勾上。不勾选时,默认值为365 Jenkins 提供了两个选项来确定何时应丢弃构建: 按照时间(天) 例如: 14 按照次数 例如: 50 这两个选项可以同时启用,因此可以将构建保留 14 天,但最多只能保留 50 个构建。如果超出任一限制,则超出该限制的任何构建都将被丢弃。 如果已经配置了很多Jenkins job,可以使用Configuration Slicing可以批量来配置Jenkins job。 - 参数化构建过程:在构建时提供传递参数的选项。
- 如果配置了参数化构建,在job主页面会出现Build with Parameters,如果没配置则会显示立刻构建
- Jenkins本身支持简单的参数化配置,例如:凭据参数、字符参数、密码参数、布尔值参数,选项参数等。
- 在必要的时候并发构建: 允许项目同时进行多个构建进程
- 默认情况下,每次只执行一个项目的构建 — 任何其他开始构建该项目的请求都将保留在构建队列中,直到第一个构建完成。选中此选项后,可以并行执行该项目的多个构建。
- 默认情况下每个job在运行构建时都会在jenkins的workspace目录下创建一个以JOB_NAME 的值为名称文件夹。为了保证每次并发构建都发生在自己的工作区域内,当一个项目触发了并发构建,默认情况下,Jenkins 会在工作区目录名称后附加@
,例如“ @2 ”。
ls /var/lib/jenkins/workspace/ aaa aaa@2 aaa@3- 并发构建的数量取决于执行器的数量,执行器数量配置在jenkins-系统配置-执行器数量进行修改,一般建议设置数量小于CPU核心数。
- 静默期:这里指定的值将作为构建被触发(检测到代码更新) 和Jenkins真正执行构建之间的一个“等待时间”或者偏移量。这对于那些经常同一时间有很多变更的任务很有用。 如果Jenkins项目中没有配置静默期,将会使用全局配置中的设置。
- 重试次数:如果从版本库签出代码失败,Jenkins会按照这个指定的次数进行重试之后再放弃。
- 这里的重试是基于需要依赖外部环境提供服务,当外部服务不可靠时(拉取代码失败导致),应当让当前的执行步骤重新尝试获取服务,而不是直接报错。
- 如果你想实现构建流程失败导致的重试,需要安装Naginator插件
- 使用自定义的工作空间:当项目只能在特定位置才能构建。可以使用此选项进行执行工作目录
- 保留构建的依赖日志:保留与此项目相关的其他项目的构建记录,不受日志清理的影响。
源码管理
源码管理主要功能是从远端获取代码的渠道,一般有一下两种
- git : 需要依赖 Git Plugin插件
- svn: 需要依赖Subversion插件
构建触发器
触发器的功能是提供了调用jenkins构建的方式,一般有url触发构建,定时周期性构建,以及依赖性构建。使用场景:代码推动时触发jenkins项目构建、或相关联的项目构建后触发构建等等。
构建步骤
构建步骤主要为了实现将代码打包构建成可运行的程序,其中可以Linux平台可以调用shell 、window平台可以调用bat 命令。
构建后操作
构建后的操作,一般项目构建后需要将制品归档、消息通知等等,可以在这个步骤里做。
关于归档文件
如果你在构建后将制品归档,那么这个制品实际还是在jenkins服务器上进行存放的,存放路径为 \({JENKINS_HONE}/jobs/\){JOB_BASE_NAME}/builds/构建编号/archive/,归档文件会随着丢弃旧的构建的配置而销毁
Jenkins视图
从刚刚jenkins目录我们知道Jenkins 实际是将job的配置信息以文件的形式存放在/var/lib/jenkins/jobs/目录下以job名的文件夹内。在Linux有个重要的理念叫做一切皆文件,在同一个目录下不能出现相同名称的文件。所以jenkins也要求我们在同一个工作目录下的job名称必须唯一。
当jenkins内部的job比较多时 /var/lib/jenkins/jobs/ 也会有相同job项目目录配置文件夹,可以在Jenkins 的UI界面配置视图,将相关的Job纳入到对应的视图内。
视图分为:
- 列表视图: 所有人可见,全局生效
- 我的视图: 只在个人账号下生效
新增视图方式


点击 create 创建视图,随后进入到创建视图详情页面


过滤构建队列:选中则表示在这个视图UI界面内,在构建队列内只显示和此视图相关的任务
过滤构建执行器: 选中则表示在这个视图UI界面内,在构建队列内只显示和此视图相关的任务
修改默认视图
如果有多个视图的情况下。默认情况,进入Jenkins时会进入所有 视图内。修改方式: http://JENKINS_URL/manage/configure 默认视图,选择你要设置的默认视图,保存。

文件夹Folders
文件夹与job 同归于一类,文件夹的应用场景是创建名称的环境隔离。前面我们说到 jenkins内,每个job的名称都必须是唯一的,所以如果我们需要创建两个一模一样名称的job只能依靠Folders 文件夹的形式来进行。
创建文件夹的方式:
(创建文件夹前必须先安装 Folders 插件)
打开 http://JENKINS_URL/view/all/newJob 选择文件夹 类型的项目

正常项目和文件夹内的项目在构建过程中获取job名称的不同
- 文件夹下的job名称可以与文件夹外的job名称重复,但是同一个文件夹内的job名称必须唯一
- 如果项目在test 文件夹下的job, test_job在构建过程中获取job名称获取方式
- JOB_BASE_NAME : 获取的值是 test_job
- JOB_NAME : 获取的值是 test/test_job
- 不在文件夹下的名为first_job项目获取值:
- JOB_BASE_NAME : 获取的值是 test_job
- JOB_NAME : 获取的值是 test_job

浙公网安备 33010602011771号