如下内容是针对jenkins 2.121.2版本的使用。
管理相关
jenkins系统理解
1.jenkins是一个开源的工具,主要用途是管理机器集群,方便地在机器上执行任务(shell脚本)
2.jenkins是一个文件系统,从jenkins官网下载一个java war包,指定JENKINS_HOME环境变量后,run起来这个war包,jenkins进程就会在JENKINS_HOME里进行安装,后续系统运行的节点、任务、构建历史、权限设置、各类配置都存在JENKINS_HOME这个系统路径磁盘下
3.jenkins是单master的架构,一般用冷备方案,将整个JENKINS_HOME对应的目录定时rsync到其他机器
4.关闭jenkins可以直接kill掉该jenkins进程,也可以使用http://jenkins__domain/exit,http://jenkins_domain/restart等接口
5.当需要批量修改大量任务/节点的配置时,假设修改大量job的LABLE参数设置,可以只修改一个job的LABEL参数,在jenkins master上查看该job的config文件的变化,再在机器上批量修改所有job的config文件,最后调用http://jenkins_domain/reload,即可生效所有配置
权限设置
1.使用矩阵式的权限设置,很强大,可以全局为用户设置权限,也可以对单个job设置权限
API使用
1.在jenkins任意页面,在页面右下角都有个“REST API”的字样,点进去可以看到当前页面支持的api接口
其他功能
1.jenkins pipeline+groovy脚本可以实现代码化的jenkins job配置文件管理
2.jenkins可以很容易的配置gerrit trigger,跟gerrit联动实现代码更新时,触发jenkins job构建
3.jenkins job可以配置失败定位,并在界面上提示错误原因(Parsed Console Output功能)
node相关
1.创建节点后连接不上
- 手动登录master机器,执行ssh xx_user@xx_slave.bj,之后在jenkins对节点断开连接再重连
- 尝试在节点配置里Host Key Verification Strategy选择Non verifying
2.创建节点时使用copy from其他节点,出现奇怪问题
- 记得修改节点配置里的host,不然两个node name指向同一个机器
- 修改了节点配置中的host可能不生效(jenkins bug),可以尝试将节点断开连接再重连
3.主页-manage jenkins-load statistics可以查看所有机器的负载情况
job相关
1.新建job后,一般要限制job运行的节点。可通过“Restrict where this project can be run”选项设置,也可在参数里添加“LABLE”参数。
2.在构建后操作里,可执行回调、发邮件等功能。
3.job启动后,假设任务分配到的机器磁盘满,这时jenkins在运行脚本时,会直接失败。所以,尽量设置任务的构建后操作,将这种失败情况做兼容处理
4.job配置历史很好用,出问题时方便找出责任人
5.在job build history右边,有个trend按钮,点击可以看到更多构建历史
6.可以设置job并行多个任务,同时配置机器支持并行多个任务
7.为job设置超时自动终止的时间,避免任务对机器一直占用
8.为job设置log保存日期,避免占用jenkins磁盘过大