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..." 点击" ...
随机推荐
- Spring入门篇——第3章 Spring Bean装配(上)
第3章 Spring Bean装配(上) 介绍Bean的作用域.生命周期.Aware接口.自动装配和Resource等内容. 3-1 Spring Bean装配之Bean的配置项及作用域 从上至下依次 ...
- BZOJ 2527 [Poi2011]Meteors (整体二分+树状数组)
整体二分板题,没啥好讲的-注意是个环-还有所有贡献会爆longlong,那么只要在加之前判断一下有没有达到需要的值就行了- CODE #include <set> #include < ...
- [Svelte 3] Use DOM events and event modifiers in Svelte 3
The whole magic of webapps is that users can interact with our code via various DOM events and Svelt ...
- Ecplilse使用
0 注意版本 新版本对JDK的支持是有限的,如果Ecplise版本过高,而JDK版本低的话可能会不支持JDK 1.快捷键 右键-->source中可快速生成get set 重写方法 2.Deb ...
- centos 7配置静态IP,并配置DNS
注意:四 个文件 cat /etc/sysconfig/network-scripts/ifcfg-eth0 cat /etc/sysconfig/network cat /etc/resolv.co ...
- Go中&和*的区别
& 返回变量的内存地址 * 返回变量的值, * 只能作用在指针上 package main import "fmt" func main() { var a = 5 var ...
- ios端,input框,汉字输入不上问题
input{ -webkit-transform: translate3d(, , ); } 在input框上加上这段代码就可以了 另外,我在一个页面上,用一个开关去控制一部分内容显示隐藏与显示时,当 ...
- node中的koa2
创建koa2工程 首先,我们创建一个目录hello-koa并作为工程目录用VS Code打开.然后,我们创建app.js,输入以下代码: // 导入koa,和koa 1.x不同,在koa2中,我们导入 ...
- poj1737
Connected Graph POJ - 1737 An undirected graph is a set V of vertices and a set of E∈{V*V} edges.An ...
- 面试题:this指针的指向,以及call、apply应用
var a = 2; function test(){ var a = 4; console.log(this.a); this.a = 1; } test();//2 //这里为什么是2?因为调用t ...