系统运维

部署jenkins中不管是k8s去部署jenkins还是传统的去部署jenkins都会遇到两种问题,一个是下载插件慢,一个是离线,我们需要做一些优化

第一个问题就是安装jenkins一般会遇到离线的jenkins,目前这个问题,大多数因为很多的访问国外的服务器也是有些问题,但是有的也不会影响,甚至也能正常运行,但是有的就会出现离线的状况,所以针对这个问题我们还是需要一些应对的方法
目前解决这个问题不管是k8s还是传统部署这些配置都要去工作目录去修改
将这个https,换成http
也就是默认的工作目录下,这个目录看你个人在部署jenkins的时候放到什么位置了,如果不设置就是在/root/.jenkins/hudson.model.UpdateCenter.xml 这个文件里
因为我这是部署在k8s里所以这里去持久化的目录下更改的,不过都是一样的

[root@k8s-node3 kubernetes]# cd default-jenkins-home-pvc-c6e2ac7d-c2fc-4b8c-87c4-d73ea176049e/
[root@k8s-node3 default-jenkins-home-pvc-c6e2ac7d-c2fc-4b8c-87c4-d73ea176049e]# cat hudson.model.UpdateCenter.xml 
<?xml version=\'1.1\' encoding=\'UTF-8\'?>
<sites>
  <site>
    <id>default</id>
    <url>http://updates.jenkins.io/update-center.json</url>
  </site>

像这里需要重启一下,我直接delete pod,这个默认k8s会自动再帮你启动一个,数据不会丢失,因为使用的持久化
检查是否正常,测试已经可以下载插件了

第二个问题就是安装插件,jenkins的服务器是在国外,所以有的会导致下载插件很慢,所以需要将jenkins的插件的地址换成国内的访问地址
我这个是k8s部署的所以持久化这个目录的工作目录放这里了,要是传统的话,默认不修改工作目录是在/root/.jenkins/updates/default.json
如果修改的话,这个根据自己的工作目录去将这个国外的地址替换过来
[root@k8s-node3 ~]# cd /ifi/kubernetes/
进入这个持久化目录,到这个默认的default下

[root@k8s-node3 kubernetes]# cd default-jenkins-home-pvc-9d58c2b2-e325-4fae-a83a-808f3d5175ef/updates
[root@k8s-node3 updates]# cat default.json 

就是将这个目录去修改,默认会看到是走的google的地址,下载插件也是update的地址,所以下载会慢,当然这个插件一般进到web的页面才能看到这个updates下的文件,默认下载的时候才会加载这个地址,所以需要将里面的配置都替换成清华的源,而之前在页面去替换,很多不生效的,所以最终的解决办法就是替换这里json,另外在jenkins的目录下restart重启让它生效,或者传统的部署war形式就是重启war包
进行替换,这里因为很多国外的需要用sed全部替换国内的

[root@k8s-node3 updates]# sed -i \'s/http:\\/\\/updates.jenkins-ci.org\\/download/https:\\/\\/mirrors.tuna.tsinghua.edu.cn\\/jenkins/g\' default.json && \\
sed -i \'s/http:\\/\\/www.google.com/https:\\/\\/www.baidu.com/g\' default.json

现在安装插件也没问题

现在去测试安装插件的速度也是扛扛的

最佳实践———Jenkins对离线和插件安装慢解决方法-冯金伟博客园