当前位置:网站首页>Spinnaker调用Jenkins API 返回403错误
Spinnaker调用Jenkins API 返回403错误
2022-08-04 00:00:00 【Jerry00713】
感谢:
Spinnaker调用Jenkins API 返回403错误 - 走看看
https://www.jianshu.com/p/6c7ae50e1784
场景
前段时间,k8s生产环境中选择使用Spinnaker + Jenkins实现CI/CD,但是我在Spinnaker执行构建走到调用jenkins的时候出错
然后我去检查一下Jenkins的日志发现,出现以下报错:
[[email protected] ~]# kubectl logs -f jenkins-56d9fd55f9-xrtgz -n infra
WARNING hudson.security.csrf.CrumbFilter#doFilter: No valid crumb was included in request for /job/dubbo-demo-slave/buildWithParameters by admin. Returning 403.
原因
因为Spinnaker是通过跨站的方式调用Jenkins,那么Jenkins默认是开启CSRF保护,所以jenkins就会返回一个403报错
解决
老版本解决方案:
把CSRF保护的勾取消即可。
新版本解决方案:
老版本Jenkins的CSRF保护功能只需要在 系统管理 > 全局安全配置 中便可进行打开或者关闭。让人头疼的是较高版本的Jenkins竟然在管理页面关闭不了CSRF,网上搜索到的资料有写通过 groovy代码 实现取消保护,但是笔者操作未成功,最后,Get到了一种成功的解决姿势。
在Jenkins启动前加入相关取消保护的参数配置后启动Jenkins,即可关闭CSRF,配置内容如下:
-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
Jenkins若是跑在Tomcat下,只需在tomcat启动脚本中加入配置即可;若是以jar包形式部署的,只需在启动时加上配置参数即可。
笔者Jenkins是部署在k8s环境中,故启动参数配置在yaml文件中,如下:
cat dp.yaml |grep csrf -C5
整个配置文件:
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: jenkins
namespace: infra
labels:
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
name: jenkins
template:
metadata:
labels:
app: jenkins
name: jenkins
spec:
volumes:
- name: data
nfs:
server: hdss7-200
path: /data/nfs-volume/jenkins_home
- name: docker
hostPath:
path: /run/docker.sock
type: ''
containers:
- name: jenkins
image: harbor.od.com:180/infra/jenkins:v2.319.1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
protocol: TCP
env:
- name: JAVA_OPTS
value: -Xmx512m -Xms512m -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
volumeMounts:
- name: data
mountPath: /var/jenkins_home
- name: docker
mountPath: /run/docker.sock
imagePullSecrets:
- name: harbor
securityContext:
runAsUser: 0
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
revisionHistoryLimit: 7
progressDeadlineSeconds: 600
边栏推荐
- Node.js的基本使用(三)数据库与身份认证
- FPGA按键消抖+蜂鸣器
- 七夕活动浪漫上线,别让网络拖慢和小姐姐的开黑时间
- After building the pytorch environment, the pip and conda commands cannot be used
- Three.js入门详解
- Unity 截取3D图像 与 画中画PIP的实现
- 1067 Sort with Swap(0, i)
- 密码学基础以及完整加密通讯过程解析
- Sqlnet. Ora file with the connection of authentication test
- 全面讲解 Handler机制原理解析 (小白必看)
猜你喜欢
The super perfect layout has shortcut keys and background replacement
Salesforce's China business may see new changes, rumors may be closing
苹果对高通说:我4.45亿美元买下一个新园区,可能计划加快基带芯片自研
【OpenCV图像处理】 图像拼接技术
Jar a key generation document database
The Chinese Valentine's Day event is romantically launched, don't let the Internet slow down and miss the dark time
Flutter教程之为什么 Flutter 是创业的最佳选择?
689. 三个无重叠子数组的最大和
Creo 9.0创建几何点
Graph-node:创建一个新的subgraph
随机推荐
汉字风格迁移---结合本地和全局特征学习的中文字体迁移
BPF 可移植性和 CO-RE(一次编译,到处运行)
逆波兰表达式求值
【LeetCode】最长公共子序列(动态规划)
易动纷享--测试实习生视频面试
Three.js入门详解
RSS订阅微信公众号初探-feed43
RSS订阅微信公众号初探-feed43
(PC+WAP)织梦模板不锈钢类网站
小身材有大作用——光模块寿命分析(二)
我的祖国
JVM垃圾回收总结(未完待续)
绕任意轴旋转矩阵推导
射频芯片ATE测试从入门到放弃之参数测试
北京电竞元宇宙论坛活动顺利召开
Internship: Upload method for writing excel sheet (import)
LYVE1抗体丨Relia Tech LYVE1抗体解决方案
伦敦银最新均线分析系统怎么操作?
简单了解下 TCP,学习握手和挥手以及各种状态到底是怎么样的
Nanoprobes 棕榈酰纳米金相关说明书