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 |