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..." 点击" ...
随机推荐
- body element height id small, but the backgroud color is full screen
http://www.cnblogs.com/xiaoyuersdch/p/9156240.html ------------------------------------------------- ...
- WebRtc的一些基本概念
GCC:Google Congestion Control,谷歌提出的拥塞控制算法 REMB:Receiver Estimated Maximum Bitrate, 接收端最大接收码率估测,接收端会 ...
- wmware虚拟化的启动问题
2019-05-09,14点14 vmware出现VMware提示:已将该虚拟机配置为使用 64 位客户机操作系统.但是,无法执行 64 位操作.解决方案 进入bios里面intel 虚拟化技术 先设 ...
- 03—mybatis的基本用法02
深入Mapper XML映射文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比 ...
- 配置Anaconda环境
1. 帮助信息 命令行下执行"conda -h"或“conda --help”可以获得帮助信息: 命令行下执行"conda <argument> -h&quo ...
- 跟hzwer学分块!?
orz hzwer.分块啥的真是太强了- (块状链表也真是太强了-) Upd:Upd:Upd: 好像链接时不时会炸?这个时候就体现了转载的作用 如果上面链接用不了就戳这里
- 题解 [BZOJ1832][AHOI2008] 聚会
题面 解析 首先对于其中的两个点\(x,y\)最近的点显然就是他们的\(lca\)(我们把它设为\(p1\)), 然后考虑第三个点\(z\)与\(p1\)的\(lca,p2\). 有以下几种情况: \ ...
- encodeURI()、encodeURIComponent()、escape()
URI的通用格式如下: /*** 协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数1=值1&参数2=值2+值3#标志 **/ /*** http://use ...
- Unknown property 'mybatis-plus' yml文件报错
就是因为没有对应的依赖 package com.taotao.config; import org.mybatis.spring.annotation.MapperScan; import org.s ...
- 浏览器事件循环机制(event loop)
JS是单线程的 JS是单线程的,或者说只有一个主线程,也就是它一次只能执行一段代码.JS中其实是没有线程概念的,所谓的单线程也只是相对于多线程而言.JS的设计初衷就没有考虑这些,针对JS这种不具备并行 ...