系统版本:Centos7.2
Jenkins版本:2.3

注:本文参考官方文档 https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy

搜索了下目前关于firefox和chrome不显示测试报告的解决方案,大部分都通过“脚本命令行”实现。这种方式的好处是即时生效,无需进行重启Jenkins服务操作。但一旦服务器维护重启,又需要再次通过“脚本命令行”进行配置,容易遗漏。故整理了永久修改CSP的方法,以便于重启Jenkins后,配置依然生效。步骤如下:

1. 通过systemctl status jenkins 查看jenkins的启动脚本文件位置
[root@develop02 ~]# systemctl status jenkins
● jenkins.service - LSB: Jenkins Continuous Integration Server
Loaded: loaded ( /etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: active (running) since Tue 2017-02-07 15:25:23 CST; 1h 4min ago
Docs: man:systemd-sysv-generator(8)
Process: 936 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/jenkins.service
└─1616 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -Dhudson.model.Direc...

2. 进入后查看jenkins的启动文件,可以查到jenkins配置文件所在位置。
vim /etc/rc.d/init.d/jenkins
/JENKINS_CONFIG

3. 进入配置文件所在位置
vim /etc/sysconfig/jenkins
进入后增加环境变量
HUDSON_OPTIONS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"sandbox; default-src 'unsafe-inline';\""

4. 再次进入jenkins启动文件,修改代码,增加HUDSON_OPTIONS变量
vim /etc/rc.d/init.d/jenkins
JAVA_CMD="$JENKINS_JAVA_CMD $JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME $HUDSON_OPTIONS -jar $JENKINS_WAR"
PARAMS="--logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon"

5. 重启Jenkins服务,使配置生效。
systemctl restart jenkins

6. 查看jenkins服启动参数,配置已生效
/etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -Dhudson.model.DirectoryBrowserSupport.CSP="script-src 'unsafe-inline'" -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20

7.进入到jenkins的系统管理->脚本命令行,输入命令查看系统属性
System.getProperty("hudson.model.DirectoryBrowserSupport.CSP")

8. 可看到配置已修改成功


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐