当前位置:网站首页>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
边栏推荐
猜你喜欢

C# wpf使用ffmpeg命令行实现录屏

Justin Sun was invited to attend the 36氪 Yuan Universe Summit and delivered a keynote speech

Creo 9.0二维草图的诊断:重叠几何

FinClip, help smart TV more imagination

【深度学习】基于tensorflow的服装图像分类训练(数据集:Fashion-MNIST)

【MySQL —— 索引】

超级完美版布局有快捷键,有背景置换

POE交换机全方位解读(上)

孙宇晨受邀参加36氪元宇宙峰会并发表主题演讲

It will invest about 200 billion US dollars in the United States in 20 years, and Samsung Electronics looks so handsome
随机推荐
3D Semantic Segmentation - 2DPASS
leetcode/子串中不能有重复字符的最长子串
北京电竞元宇宙论坛活动顺利召开
jav一键生成数据库文档
射频芯片ATE测试从入门到放弃之参数测试
XSLT – 服务器端概述
The problem of disorganized data output by mnn model
Nanoprobes Mono- Sulfo -NHS-Nanogold的使用和应用
电子邮件安全或面临新威胁!
Free自由协议系统开发
Using matlab to solve the linear optimization problem based on matlab dynamic model of learning notes _11 】 【
通过whl安装第三方包
逆波兰表达式求值
【职场杂谈】售前与销售工作配合探讨
The super perfect layout has shortcut keys and background replacement
libnet
BPF 可移植性和 CO-RE(一次编译,到处运行)
FastDFS 一文读懂
Jar a key generation document database
Read FastDFS in one article