Jenkins - Tips
01 - RPM包安装方式
默认路径
- 配置文件:/etc/sysconfig/jenkins
- 日志文件:/var/log/jenkins/jenkins.log
- 执行文件:/usr/lib/jenkins/jenkins.war
默认变量
- JENKINS_HOME:/var/lib/jenkins
- JENKINS_USER:jenkins
- JENKINS_PORT:8080
02 - JENKINS_HOME 目录结构
实例
bash-4.4# ls -l var/jenkins_home/
total 68
-rw-r--r-- 1 root root 1647 Dec 3 08:18 config.xml
-rw-r--r-- 1 root root 3972 Dec 3 08:00 copy_reference_file.log
-rw-r--r-- 1 root root 156 Dec 3 08:00 hudson.model.UpdateCenter.xml
-rw-r--r-- 1 root root 370 Dec 3 08:00 hudson.plugins.git.GitTool.xml
-rw------- 1 root root 1712 Dec 3 08:00 identity.key.enc
-rw-r--r-- 1 root root 7 Dec 3 08:18 jenkins.install.InstallUtil.lastExecVersion
-rw-r--r-- 1 root root 7 Dec 3 08:18 jenkins.install.UpgradeWizard.state
-rw-r--r-- 1 root root 184 Dec 3 08:18 jenkins.model.JenkinsLocationConfiguration.xml
-rw-r--r-- 1 root root 171 Dec 3 08:00 jenkins.telemetry.Correlator.xml
drwxr-xr-x 2 root root 6 Dec 3 08:00 jobs
drwxr-xr-x 4 root root 37 Dec 3 08:00 logs
-rw-r--r-- 1 root root 907 Dec 3 08:00 nodeMonitors.xml
drwxr-xr-x 2 root root 6 Dec 3 08:00 nodes
drwxr-xr-x 109 root root 16384 Dec 3 08:17 plugins
-rw-r--r-- 1 root root 64 Dec 3 08:00 secret.key
-rw-r--r-- 1 root root 0 Dec 3 08:00 secret.key.not-so-secret
drwx------ 4 root root 237 Dec 3 08:18 secrets
drwxr-xr-x 2 root root 182 Dec 3 08:17 updates
drwxr-xr-x 2 root root 24 Dec 3 08:00 userContent
drwxr-xr-x 3 root root 58 Dec 3 08:18 users
drwxr-xr-x 11 root root 4096 Dec 3 08:00 war
drwxr-xr-x 2 root root 6 Dec 3 08:00 workflow-libs
bash-4.4#
目录结构说明
--- config.xml # jenkins 的主配置文件
--- copy_reference_file.log
--- hudson.model.UpdateCenter.xml
--- hudson.plugins.git.GitTool.xml
--- identity.key.enc
--- jenkins.install.InstallUtil.lastExecVersion
--- jenkins.install.UpgradeWizard.state
--- jenkins.model.JenkinsLocationConfiguration.xml
--- jenkins.telemetry.Correlator.xml
d --- jobs # 作业的配置信息、构建信息、生成的artifacts数据,所有任务的配置都必须在主节点的jobs目录下进行统一管理
d --- logs # 任务日志信息,但详细的运行日志存放在/var/log/jenkins
--- nodeMonitors.xml
d --- nodes # 所有绑定的从节点的信息
d --- plugins # 存放插件文件,jpi是安装文件,bak是上一个版本的安装备份文件用于版本回退
--- secret.key
--- secret.key.not-so-secret
d --- secrets # 系统和用户的认证和秘钥信息
d --- updates # 系统和插件的更新信息
d --- userContent # 存放用户自定义的文件,可以通过web页面直接访问或通过“http://192.168.16.102:8080/userContent”方式下载
d --- users # 当使用 jenkins自己的本地用户数据库时,用户信息会存放在此目录
d --- war # 存放扩展的 web 应用程序,当以单机应用程序的形式运行 jenkins 时,会把 web 应用程序解压到这个目录
d --- workflow-libs
03 - 任务队列
不要先为任务分配好资源再去执行
而是应该将任务保持到队列中,然后在资源条件满足时,自动从这个任务队列获取任务并执行。
04 - 设置界面显示语言
以设置中文界面为例:
系统管理--》插件管理--》可选插件--》选择安装locale和“Localization: Chinese (Simplified)"插件,然后根据提示操作
系统管理--》系统设置--》Locale--》Default Language填入“zh_CN”,并勾选---》应用保存
切换回英文界面
系统管理--》系统设置--》Locale--》Default Language填入“zh_US”,并勾选---》应用保存
05 - Jenkins页面本地化之后,界面显示中英文混杂
原因及处理方式
- 某些版本识别浏览器默认语言以后的本地化处理存在问题。升降级到一个稳定可用的LTS版本
- 旧版本插件干扰。卸载并重新安装中文显示插件,并在系统设置中配置中文Locale(Default Language=zh_CN),然后重启jenkins服务。
- 获得最新TLS版本的plugins目录,然后覆盖到旧版本的jenkins目录下。
- 设为”简体中文“后restart Jenkins发生部分简体中文不显示。将语言设定为zh_US,Jenkins切换为英文,重启Jenkins后再次语言设定为zh_CN。
特别注意:
操作前必须做好目录和文件备份,以便出现问题时能够及时回滚。
备份plugins目录、users目录和config.xml文件。
如果出现登录提示用户名或密码不正确,可以考虑把备份的users目录替换回去。
06 - Jenkins官网资源下载
http://mirrors.jenkins.io/
Updates:http://mirrors.jenkins.io/updates/
war包下载:http://mirrors.jenkins.io/war-stable/
插件下载:http://mirrors.jenkins.io/plugins/
镜像地址查询:http://mirrors.jenkins-ci.org/status.html/
07 - 添加Jenkins的执行脚本权限
方式1:使用sudo授权
使用命令“visudo”编辑授权,或者直接编辑“vi /etc/sudoers”文件,将Jenkins用户权限提升为管理员权限
[root@localhost ~]# vim /etc/sudoers
[root@localhost ~]#
[root@localhost ~]# cat /etc/sudoers |grep -v ^# |grep -Ev "^$"
Defaults !visiblepw
Defaults always_set_home
Defaults match_group_by_gid
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
root ALL=(ALL) ALL
jenkins ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
[root@localhost ~]#
方式2:
让jenkins以root或对应用户执行:https://www.jianshu.com/p/fa546f723724
08 - Jenkins问题处理汇总
- Jenkins插件安装失败处理方法:https://www.cnblogs.com/sxdcgaq8080/p/10489326.html
- 安装和使用Jenkins时遇到的问题:https://www.jianshu.com/p/62cc8605b4e3
09 - Jenkins的升级
官网Jenkins LTS 升级指导:https://jenkins.io/zh/doc/upgrade-guide/
Jenkins在可以连通外网的情况下,如果有新版本,会在页面给出提示信息,可以直接根据页面提示进行在线升级。
如果无法连接外网,可以采用替换文件的方式。
先停止当前的Jenkins服务,备份原有的jenkins.war文件或jenkins.jar文件、配置和数据文件夹,替换jenkins.war文件或jenkins.jar文件,然后重启Jenkins服务。
10 - Jenkins备份与还原
手工(版本之间差异不要太大,防止不兼容)
- 备份:停止Jenkins服务---》压缩整个JENKINS_HOME目录并备份---》重启Jenkins服务
- 还原:停止Jenkins服务---》备份当前JENKINS_HOME目录,防止还原失败---》解压JENKINS_HOME目录到对应位置---》重启Jenkins服务
自动(通过ThinBackup插件)
安装后,系统管理---》ThinBackup---》Settings,进行全局设置并保存---》开始备份或还原
11 - 忘记Jenkins用户密码
编辑用户的config.xml文件,替换passwordHash行的内容,然后重启jenkins,使用更改后的密码登录即可。
密码123456对应的加密内容为:#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq
[root@test102 users]# pwd
/tmp/jenkins-data/users
[root@test102 users]#
[root@test102 users]# tree
.
├── Anliven_1239557570388740263
│ └── config.xml
└── users.xml
1 directory, 2 files
[root@test102 users]#
[root@test102 users]# vim Anliven_1239557570388740263/config.xml
[root@test102 users]#
[root@test102 users]# cat Anliven_1239557570388740263/config.xml |grep password
<passwordHash>#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq</passwordHash>
[root@test102 users]#
12 - Jenkins 插件中心国内镜像源
清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/
Jenkins 是通过解析 update-center.json 文件的方式来获取插件版本和下载插件。
只有通过了公钥验证的 update-center.json 文件才会被使用:https://gitee.com/jenkins-zh/update-center-mirror/blob/master/tsinghua/update-center.json
Manage Jenkins --》 Manage Plugins (系统管理--》插件管理)--》升级站点---》提交
旧地址:https://updates.jenkins.io/update-center.json
新地址:https://gitee.com/jenkins-zh/update-center-mirror/blob/master/tsinghua/update-center.json
13 - Jenkins中文本地化插件
Jenkins 简体中文插件:https://plugins.jenkins.io/localization-zh-cn
14 - Jenkins任务分类与查找
在Jenkins中,可以通过视图(标签页)来直观地对任务类型进行分类和查找。
添加视图名称和选择视图类型,如无特别要求,选择“列表视图”并直接使用默认配置即可。
也可以选择添加所需要的列信息。
可以直接通过URL方式直接访问视图页面
视图创建完成后,就可以根据提示来添加现有的任务到该视图中,或者在该视图中创建一个新的任务。
在视图页面,可以编辑和删除视图
特别说明:Jenkins必须要有一个job存在,否则无法在Jenkins查看到View的页面信息。
15 - Jenkins任务邮件提醒
任务界面---》配置---》构建后操作---》
E-mail Notification:基础配置
Editable E-mail Notification:高级的自定义配置
- 收件人地址(逗号隔离)
- 邮件内容的格式
- 邮件的标题
- 邮件默认内容
- 是否附加构建日志
- 邮件发送的触发条件
Jenkins - Tips的更多相关文章
- gitlab+jenkins自动化打包IOS-jenkins配置
实现的效果如图: 构建界面: 完成效果: 功能说明: 根据选择的代码分支,执行构建打包 构建成功后根据ipa/apk生成二维码,并可在历史构建列表中展示各个版本的二维码,通过手机扫描二维码可直接安装 ...
- Jenkins-client模式配置
Jenkins配置master-slave模式 本来想着先写一篇jenkins安装的流程,但是现在jenkins做的已经非常完善了,有.war文件,直接在tomcat启动即可,所以这里就不多说了,小白 ...
- jenkins net编译部署 笔记 tips
1 忘记密码 的话,C:\Users\quyongshuo.jenkins\config.xml 修改 true 为false 重新启动 可以重新设置用户信息. 2 修改端口 Java -jar je ...
- [转载] Jenkins入门总结
转载自http://www.cnblogs.com/itech/archive/2011/11/23/2260009.html 在网上貌似没有找到Jenkins的中文的太多的文档,有的都是关于Huds ...
- Jenkins - 持续集成环境搭建
1. Jenkins 概述 Jenkins是一个开源的持续集成工具.持续集成主要功能是进行自动化的构建.自动化构建包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 2 ...
- Jenkins入门总结
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作 在网上貌似没有找到Jenkins的中文的太多的文 ...
- 持续集成之Jenkins(坏老头)
点击关注哦↑↑↑↑↑↑↑↑↑ 持续集成 有关持续集成的简介,可参考我此前的文章:http://blog.csdn.net/benkaoya/article/details/44993583 Jenki ...
- Jenkins入门-转
reference : http://www.cnblogs.com/itech/archive/2011/11/23/2260009.html 在网上貌似没有找到Jenkins的中文的太多的文档,有 ...
- MAC上搭建Jenkins + Android + IOS自动开发部署环境
因为MAC是大小写不敏感的操作系统,很多Linux命令不支持,所以首先要创建大小写敏感的操作系统. 设置静态IP 打开"System Preferences..." 点击" ...
随机推荐
- Appium&Java自动化实现移动端几种典型动作
一.Appium4.0 Pinch&Zoom /* * @FileName Pinch_Zoom: Pinch_Zoom * @author davieyang * @create 2018- ...
- PAT乙级1037
题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805284923359232 题解 还算简单,就是模拟我们在生活 ...
- texture2dArray
https://medium.com/@calebfaith/how-to-use-texture-arrays-in-unity-a830ae04c98b http://cdn.imgtec.com ...
- Java笔记(基础第二篇)
声明数组 数组元素类型 数组名字[]; 数组元素类型[] 数组名字; 分配内存空间 数组名字 = new 数组元素类型[数组元素的个数] 其中使用new关键字为数组分配内存时,数组中各个元素的初始化值 ...
- 题解 [CF525D] Arthur and Walls
题面 解析 首先考虑将一个\('*'\)变成\('.'\)后会形成什么, 显然至少是一个\(2\times 2\)的矩形. 因为\(1\times 1\)和\(1\times 2\)的改了没用啊, 而 ...
- pypdf2:下载Americanlife网页生成pdf合并pdf并添加书签
初步熟悉 安装 pip install pypdf2 合并并添加书签 #!/usr/bin/env python3.5 # -*- coding: utf-8 -*- # @Time : 2019/1 ...
- Navicat连接虚拟机上的mysql
刚刚在虚拟主机上安装mysql, 想使用Navicat 操作mysql. 但是连接不上 报错: 2003 - can't connect to MySQL server on '192.168.1 ...
- .NET大文件分片上传
需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...
- vim.rc配置(deepin)
set nocompatible " be iMproved, requiredfiletype off " required " set the runtime pat ...
- NVMe Windows 支持情况
From NVMe 官网: Windows Driver – Microsoft Inbox • Closed source driver (Microsoft)• Inbox driver to W ...