摘要:替换原因:进入 Manage Jenkins -》 Manage Plugin,发现Updates tab页没数据,报There were errors checking the update sites: SocketTimeoutException: co
替换原因:进入 Manage Jenkins -》 Manage Plugin,发现Updates tab页没数据,报There were errors checking the update sites: SocketTimeoutException: connect timed out错误(连接更新插件源超时)
问题分析:首先切换到Advanced tab页,Advanced tab页最下面有 Update Site 设置,看下当前Jenkins服务配置的更新插件源为:https://updates.jenkins.io/update-center.json,然后ssh到Jenkins服务所在服务器,验证此服务器是否能连通当前配置的更新插件源,经测试网络不通。
解决方案:将更新插件源替换为替换为服务器节点能够连通的国内插件源:
或者:
修改完后可以点击Submit按钮,然后点击Check now检查下,如果能重启Jenkins服务的话点击Submit按钮后可以直接重启下Jenkins服务。
+ mvn clean deployError: missing `server' JVM at `/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.i386/jre/lib/i386/server/libjvm.so'.Please install or use the JRE or JDK that contains these missing components.script returned exit code 4据项目组开发人员反馈,上午流水线任务构建还正常,下午流水线构建就报上面错误了,期间并没有修改过流水线配置、源码里面并没调整过JDK版本相关内容。
解决思路:经排查Jenkins Pod运行正常,maven打包容器也能拉取源码,只不过执行mvn命令时报错,所以基本可以排除Jenkins组件问题,于是网上搜索类似问题,找到类似问题文章:
adcfgclone.pl Error: missing `server' JVM at libjvm.so。
于是ssh到流水线打包节点,经排查操作系统正好是centos7.x,docker数据盘目录挂载的数据盘文件系统格式正是XFS,切挂载点超过了1T。
解决方案:修改容器云打包节点到docker数据盘
3、解决Jenkins流水线任务拉取代码报git config File exists错误错误信息:
returned status code 255:stdout:stderr: error: could not lock config file .git/config: File exists at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2450) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2380) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2376) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1923) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1935) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.setRemoteUrl(CliGitAPIImpl.java:1549) at hudson.plugins.git.GitAPI.setRemoteUrl(GitAPI.java:161) at jenkins.plugins.git.AbstractGitSCMSource.doRetrieve(AbstractGitSCMSource.java:357) at jenkins.plugins.git.AbstractGitSCMSource.doRetrieve(AbstractGitSCMSource.java:330) at jenkins.plugins.git.AbstractGitSCMSource.retrieve(AbstractGitSCMSource.java:396) at jenkins.scm.api.SCMSource.fetch(SCMSource.java:582) at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:100) at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:310) at hudson.model.ResourceController.execute(ResourceController.java:99) at hudson.model.Executor.run(Executor.java:432)Finished: FAILURE解决方案:
到Jenkins数据目录查找,可以发现在Jenkins安装目录下有个caches目录
/var/jenkins_home/caches/git-762b1469bb9de7658adbaec8d8b12877/.git/config....../var/jenkins_home/caches/git-6dff59f087b2f03588f3905a47012c3c/.git/config/var/jenkins_home/caches/git-259c3ec0c808380e583d66552ba73d06/.git/config/var/jenkins_home/caches/git-08f22672d5e50dba23f07dcd52f3100d/.git/config/var/jenkins_home/caches/git-ee60fb5e6f1859e7ee4717f127258a34/.git/config/var/jenkins_home/.config/jgit/config在某个git-xxx目录里面有.git/config文件和.git/config.lock文件,删除config.lock文件即可
find / -name "config.lock" -type frm xxx.xxx/config.lock错误信息:
解决方案:
1)先检查Jenkins打包节点文件句柄数配置
ulimit -n如果值过小,通过以下命令进行配置
ci节点配置limit:echo "* soft nofile 65535" >>/etc/security/limits.confecho "* hard nofile 65535" >>/etc/security/limits.confulimit -n 655352)检查Jenkins打包节点docker服务句柄数配置
docker服务配置文件配置limit
/usr/lib/systemd/system/docker.service--default-ulimit nofile=65535:65535来源:散文随风想