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..." 点击" ...
随机推荐
- linux下devel软件包作用
devel 包主要是供开发用,至少包括以下2个东西: 头文件 链接库 有的还含有开发文档或演示代码. 以 glib 和 glib-devel 为例: 如果你安装基于 glib 开发的程序,只需要安装 ...
- 关于swap交换操作的新方法
swap: 在oi中,swap用于交换两个变量的数值. 初学oi时,我们这样操作: 也就是说,需要一个temp变量来寄存x或y的值,因为当一个变量被赋值成为另一个变量时,没有temp它的值会丢失. 貌 ...
- Elasticsearch:运用search_after来进行深度分页
在上一篇文章 "Elasticsearch:运用scroll接口对大量数据实现更好的分页",我们讲述了如何运用scroll接口来对大量数据来进行有效地分页.在那篇文章中,我们讲述了 ...
- Educational Codeforces Round 73 (Rated for Div. 2) A. 2048 Game
链接: https://codeforces.com/contest/1221/problem/A 题意: You are playing a variation of game 2048. Init ...
- spring @Primary-在spring中的使用(转)
在spring 中使用注解,常使用@Autowired, 默认是根据类型Type来自动注入的.但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种的情况下 @Primary ...
- springboot2.0入门(三)----定义编程风格+jackjson使用+postMan测试
一.RESTFul风格API 1.优点: )看Url就知道要什么资源 )看http method就知道针对资源干什么 )看http status code就知道结果如何 HTTP方法体现对资源的操作: ...
- C++虚函数和成员函数内存 this指针问题
father* p=new son; p->disp(...); 发现有好多人this指针的本质有错误的认识,估计不少人一说起this指针,脑袋立即反应出:那个类里使用的this指针,那么这个指 ...
- Python基础面试题整理
基础 Python中lambda是什么意思 Python中的pass是什么意思 作为解释型语言,Python如何运行 什么是Python的单元测试 在Python中unittest是什么 如何将数字转 ...
- 如何优雅地防止MLE(for linux)
赛前最后一天模拟赛又有小伙伴MLE了--这里就讲一下如何较为精确地获取程序运行时间和空间. 资源统计当然是操作系统统计的最精确.所以可以这样写(noilinux实测通过,windows下应该不行): ...
- nc浏览器的十宗罪
1.收藏夹.nc浏览器收藏夹无法导出或者导出困难,十分恶心.其他的小众软件都有这个简单的功能,某天我突然想到为什么手机nc浏览器连个导出收藏夹的功能都没有,并不是不注重用户体验,或则导功能很难实现不会 ...