• 升级jenkins war包后的问题处理


    升级jenkins war包后的问题处理
    一、事情经过
      话说公司内网服务器上部署了好几个jenkins,用的最多的一个不是我搭的,war包形式,跑在tomcat上,里面新建的发布任务最多,关键还有个k8s的发布任务。
      最近有个项目A,线上测试环境不太够,需要在内网多部署一套A的发布环境,当时我是在这个内网jenkins上配置好了的,已交付给测试人员测试使用。
      前面交代过,这几天提前给公司内网项目A,做各种监控测试工作:prometheus的jvm监控,skwalking的应用性能监控,sonar持续集成检测代码打算也做一下。之前在docker上有部署好这个环境【https://www.cnblogs.com/windysai/p/15738168.html】,但是想到docker维护可能会有各种问题,尤其网络问题,怕自己hold不住。
      干脆在这个前人搭好的jenkins里安装sonar插件,至于sonar服务端还是用docker环境下跑的。到时装好,直接在该jenkins配好的项目A引用就好了,想想如果在别的jenkins配置,是需要重新建任务的。
      war包跑的jenkins版本不是一般的低(2.138.2),不支持安装sonar插件:

    、问题处理

      我特意下载docker跑的jenkins版本的war包:2.303.1,不过只找到2.303,差别应该不大。然后扔到tomcat安装目录的webapps下,启动tomcat,就开始进行sonar插件安装,装的过程中,遇到颇多问题。
    1、插件安装报错:PKIX path building failed
      升级好war包后,本来想先下载个中文汉化包,但说证书有问题,这个问题应该是历史遗留问题了~~ 估计即使不升级装插件也会报错,因为本来也没配置好
     

       走了不少弯路,有看到叫用openssl 生成证书,然后放到某个目录下;有叫在jenkins配置文件上 /etc/sysconfig/jenkins 加参数:JENKINS_JAVA_OPTIONS【https://blog.csdn.net/skybboy/article/details/110818699】,这个我特意说一下,war包下的jenkins是没有自己的配置文件的,如下图所示:

      有叫在插件管理界面升级站点,https改成http【http://www.wjhsh.net/CesareZhang-p-13152032.html】,当时还真的以为是站点问题,因为本来写的是清华的更新地址,但验证检查是报错的:找不到合法证书位置,于是按文章改成 :http://updates.jenkins.io/update-center.json,竟然可以验证通过。

      但是,安装插件时还是一样的报错。

      既然无法在jenkins的配置文件(因为不存在)加 JVM 属性参数,那应该需要搜索别的关键字,才能找到解决方法,于是我就从tomcat入手了。

      一开始找到这篇文章 “配置 Apache Tomcat 以与 Cloudant 配合使用”【https://www.ibm.com/docs/zh/mpf/7.1.0?topic=tomcat-configuring-apache-use-cloudant】,但是服务器上没有setenv.sh 的文件给配置JVM属性。

      后来结合这篇“Tomcat配置Truststore的文章”【http://cn.voidcc.com/question/p-qpozvfwu-bgk.html】,才得以解决。

      补充一下, 在服务器上找到的证书位置在:/etc/pki/ca-trust/extracted/java/cacerts

      最终解决问题方法:

    (1)在跑jenkins war包的tomcat下的bin目录,修改文件:catalina.sh,写入:

    JAVA_OPTS="-Djava.awt.headless=true -Djavax.net.ssl.trustStore=/etc/pki/ca-trust/extracted/java/cacerts"

    (2)更改站点证书 

     http://www.wjhsh.net/CesareZhang-p-13152032.html

      确实不能用清华的下载地址,怀疑是跟证书配套用的。试过只添加(1)说到的参数,但日志显示证书报错。

     2、看不到所有maven任务

    (1)升级后:

     (2)升级前:

      当时还以为自己手误干掉了,其实是Maven Info 插件报错:

       升级这个插件的时候也不是特别顺利,因为发现,插件之间是有各种关联的,好比Maven Info 依赖:token-macro,token-macro又依赖:pipeline,最后装完pipeline插件才正常显示jenkins里面的maven任务

     3、jenkins配置排版格式乱

      一开始怀疑是插件不兼容jenkins版本问题,但具体哪个插件不清楚,于是胡乱升级插件

    还有页面图标图片看不到 --- 暂未知原因

     

       jenkins日志也没找到有价值的问题突破点:

     

     脑袋大开以为是某些接口调不了,又乱查一通。。。

     最后解决办法:是java版本问题,需要从原来的jdk8换成jdk11

    一开始以为这个提示没啥用的,但该试的方法都试了,只能死马当活马医。还真的是这个问题:

    http://{jenkins服务器ip地址+端口}/jenkins/systemInfo 检查java版本已升级(/etc/profile配JAVA 的环境变量)

    看来jenkins的war包版本 2.303 是要跟 jdk1.11版本结合使用才行。建议 tomcat 的 catalina.sh 也配置一个JAVA_HOME,以防万一,还是用原来的 java 8 版本,然后重启下tomcat服务。

     

  • 相关阅读:
    docker进入容器命令
    docker复制文件到容器内以及从容器内复制文件到宿主机
    在idea中创建maven父子工程,子工程无法导入父工程依赖的问题
    maven merge 其他分支比如master的方法
    Maven 右边的maven 项目为空 pom文件
    Spark Streaming集成Kafka调优
    spark sql/hive小文件问题
    CompletableFuture详解
    样式绑定styleBinding
    jsonArray图片数组实例
  • 原文地址:https://www.cnblogs.com/windysai/p/16314648.html
Copyright © 2020-2023  润新知