Jenkins官方文档:https://www.jenkins.io/doc/
安装、启动和更新
1 | #安装最新LTS版本(LTS:Long-term support,长期支持) |
启动服务之后,可以用浏览器打开http://localhost:8080,然后根据提示完成安装即可。
局域网内无法通过ip访问的问题
使用homebrew安装Jenkins之后会将httpListenAddress默认设置为127.0.0.1,导致只能本机通过localhost访问,局域网内其他机器无法通过ip访问。要修复此问题,需要将如下文件当中的httpListenAddress配置修改为本机ip或者0.0.0.0,然后重启Jenkins即可。
1 | // 注:如果你安装的是非LTS版本,则文件名为homebrew.mxcl.jenkins.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 |