Jenkins学习之使用curl命令触发任务
jenkins学习之使用curl命令触发任务
Trigger parameterized build with curl
1 |
|
这个是触发某个带参数的job
注意
- 需要是post请求,使用-X post来表示。
- 账号密码 写到家目录下面的.netrc 文件里面,使用curl的参数-n。
- 注意多个参数使用&来分割的,注意在bash中执行要带上单引号,不然 & 会被bash解析了,bash中这个是表示让命令后台执行。特别注意。
1 | $ cat ~/.netrc -n [mamh@10.0.63.43 ] 18-01-19 14:11 /home/mamh |
Trigger parameterized build with curl and crumb
1 | SERVER=http://jenkins.马哥私房菜:8080 |
报错的一个页面:
1 | <html> |
No valid crumb was included in the request 错误就是需要加入crumb的。
出现这个错误是因为你的jenkins中 Configure Global Security下面配置了防止跨站点访问时候需要加上crumb的。
CSRF Protection 下面有个 ‘防止跨站点请求伪造’。
当然你也可以把这个勾选去掉,就不用加crumb了。
关闭jenkins的 CSRF
在执行的时候发现 报错了,
下面我来解决这个问题,在jenkins2上,这个没有 取消的 按钮了。在网上搜了一堆都是 旧版本jenkins的解决办法。根据官网描述,
Jenkins版本自2.204.6以来的重大变更有:删除禁用 CSRF 保护的功能。 从较旧版本的 Jenkins 升级的实例将启用 CSRF 保护和设置默认的发行者,如果之前被禁用。
虽然删除了禁用csrf保护功能,增加了安全性,但是在一些结合Gitlab、Spinnaker等等工具进行持续集成过程中就增加了一些认证环节,
若没有进行相关配置,得到的一定是403的报错。因为集成服务都是在内网操作,为删繁就简,笔者便考虑关闭 CSRF 保护功能,于是乎,对此展开了摸索。
下面是新版本jenkins上的解决办法,临时解决的。因为取消这个,估计会导致安全风险。在master节点执行groovy脚本,如下。
关闭之后就是下面这样了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 马哥私房菜!