jenkins任务步骤出现403错误

更新时间:
复制为 MD 格式

问题现

[19:09:28] [INFO] EMPLOYEE_ID=5f081b9b7cd41782838cb9c9
[19:09:28] [INFO] WORK_SPACE=/root/workspace
[19:09:28] [INFO] PROJECT_DIR=/root/workspace/shell_A2OF
[19:09:28] [INFO] PLUGIN_DIR=/root/plugins
[19:09:28] [INFO] BUILD_JOB_ID=76892432
[19:09:28] [INFO] JENKINS_MASTER=http://121.40.77.247:8888
[19:09:28] [INFO] JENKINS_JOB=shell2
[19:09:28] 打印当前工作区
[19:09:28] total 16
[19:09:28] drwxr-xr-x 2 root root 4096 8月  18 19:09 .
[19:09:28] drwxrwxrwx 4 root root 4096 8月  18 19:09 ..
[19:09:28] -rw-r--r-- 1 root root   55 8月  18 19:09 artifacts.json
[19:09:28] -rw-r--r-- 1 root root  699 8月  18 19:09 build.json
[19:09:28]
[19:09:28] 触发参数列表
[19:09:28]
[19:09:28]
[19:09:28] 开始触发Jenkins任务shell2的构建
[19:09:28] error: 错误码:403,错误信息:<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/> <title>Error 403 No valid crumb was included in the request</title> </head> <body> <h2>HTTP ERROR 403 No valid crumb was included in the request</h2> <table> <tr><th>URI:</th> <td>/job/shell2/build</td></tr> <tr><th>STATUS:</th><td>403</td></tr> <tr><th>MESSAGE:</th> <td>No valid crumb was included in the request</td></tr> <tr><th>SERVLET:</th><td>Stapler</td></tr> </table> &lt;hr/&gt; <a href="https://eclipse.org/jetty">Powered by Jetty:// 9.4.45.v20220203</a>&lt;hr/&gt; </body> </html>
[19:09:28] [ERROR] BUILD ERROR
[19:09:28] [ERROR] 76892432
[19:09:28] [ERROR] 1

问题原因

调用jenkins api 支持使用密码和token两种方式。由于jenkins在新版本进行了调整,不允许直接使用密码的方式调用api,会返回403报错,所以Jeknis 任务推荐使用api token。

解决方案:

1、创建Api Token

打开http://Jenkins_IP:8080/user/admin/configure,注意换成自己真实的jenkins地址,如果没用admin用户,user后也要替换成存在的用户名,比如:http://localhost:8080/user/wangli/configure。添加token,记得要将token复制出来备用,最后点保存按钮。

添加新 Token 区域的输入框中输入 Token 名称(如 myToken),然后单击生成按钮即可创建新 Token。

2、在流水线中使用Api Token

在选择凭据类型时选择服务连接,然后在新建服务连接,新建服务授权/证书中,依次输入服务地址,用户名和刚生成的token即可。在新建服务连接面板中,服务地址字段填写 Jenkins 访问地址,用户名字段填写登录用户名,Token字段粘贴上一步生成的 API Token,填写完成后单击确认保存。