Jenkins使用指南

Jenkins官方文档:https://www.jenkins.io/doc/

安装、启动和更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#安装最新LTS版本(LTS:Long-term support,长期支持)
brew install jenkins-lts

#安装特定的LTS版本
brew install jenkins-lts@YOUR_VERSION

#启动Jenkins服务
brew services start jenkins-lts

#重启服务
brew services restart jenkins-lts

#更新版本
brew upgrade jenkins-lts

启动服务之后,可以用浏览器打开http://localhost:8080,然后根据提示完成安装即可。

局域网内无法通过ip访问的问题

使用homebrew安装Jenkins之后会将httpListenAddress默认设置为127.0.0.1,导致只能本机通过localhost访问,局域网内其他机器无法通过ip访问。要修复此问题,需要将如下文件当中的httpListenAddress配置修改为本机ip或者0.0.0.0,然后重启Jenkins即可。

1
2
3
// 注:如果你安装的是非LTS版本,则文件名为homebrew.mxcl.jenkins.plist
~/Library/LaunchAgents/homebrew.mxcl.jenkins-lts.plist
/usr/local/opt/jenkins/homebrew.mxcl.jenkins-lts.plist

强制删除插件

在某些情况下,安装插件异常,插件既不能正常安装,也不能通过Jenkins提供的页面操作删除,此时可以到Jenkins存储插件的目录,将文件删除重启即可。

插件目录:~/.jenkins/plugins

注:需同时删除插件文件夹和.jpi文件

远程触发

GitLab场景推荐使用构建触发器 -> Build when a change is pushed to GitLab触发器(此触发器需要Jenkins的GitLab插件,默认安装,如果没有,请手动安装),该远程触发器可以获取到GitLab触发仓库传递过来的参数,包含仓库地址,分支,tag,推送人等信息,很实用,参数详情可以参考gitlab-plugin中的Defined variables部分。

远程调用或者脚本触发场景推荐使用构建触发器 -> 触发远程构建,使用此触发器,需要设置一个token,拼在webhook url上即可。如下是一个curl调用范例.

1
curl JENKINS_URL/job/app/job/user-release/build?token=sh123

如果需要传递参数,请使用如下方式,使用使用参数时,需要将参数配置在参数化构建过程当中。

1
curl JENKINS_URL/job/app/job/user-release/buildWithParameters?token=sh123&username=yzq

构建触发器 -> Generic Webhook Trigger用作不传递参数的普通触发器也是一个选择,但是此触发器的参数支持较弱,仅支持form方式的参数提交,不太方便扩展,不太推荐。

远程触发403或404报错,提示权限问题

此问题是远程触发鉴权失败导致,需要在触发链接上添加身份信息,此处需要Jenkins用户的用户ID和Token。用户ID为登录的用户名,Token可以在Dashboard->用户列表->某个用户->设置->API Token处生成,生成后仅展示一次,注意保存。获取到用户ID和Token之后按照如下方式调用即可

1
curl https://userId:token@myjenkins.com/job/app/job/user-release/build?token=sh123