爱意满满的作品展示区。
xianpengshen

分享一个开源项目 Agent8:让只有 Java 8 的 AIX / HP-UX / Solaris 继续当新版 Jenkins 的 agent

  •  
  •   xianpengshen ·
    shenxianpeng · 2h 33m ago · 92 views

    传统行业(银行、电信、制造)的 CI 里一个很常见的老问题:软件要支持 AIX 、HP-UX 、Solaris ,构建机都挂在 Jenkins 上,但这些系统上的 Java 基本停在 8 ( AIX 7.1 和 HP-UX 最高 Java 8 ,Solaris 最高 11 )。

    Jenkins 这几年把 Java 要求从 8 抬到 11 、17 ,现在是 21 ,而且 agent 也一样要满足。安全扫描一来 controller 必须升级,升级完这些老机器就连不上了。常见的做法是再养一套老 Jenkins ,或者这些平台手动构建,或者从新机器 ssh 过去执行命令,但那样老机器就不再是一个真正的节点了。

    所以做了 Agent8:把官方的 agent.jar 用 JvmDowngrader 降级成 Java 8 字节码,再处理掉 controller 运行时发过来的新版本 class 、serialVersionUID 变化、OpenJ9 ( IBM Java )和签名安全 provider 这几类兼容问题。老机器还是一个普通节点,sh 、junit 、stash 、中断、Git checkout 都能用。

    https://github.com/keelinfra/agent8 ( MIT ,免费)

    装法( inbound agent ):

    sh install.sh --url <controller 地址> --replace /path/to/agent.jar
    

    它会问 controller 要 remoting 版本、下载匹配的 jar 、校验 sha256 、备份原 jar ,然后用原来的命令重启就行。SSH 节点用 --dir /opt/agent8,再把节点的 Java Path 改成 /opt/agent8/java。

    现在的状态:

    • Linux 上 HotSpot 8 ( CentOS 6.10 )、OpenJ9 8 、Java 11/17 每次改动都在 CI 里跑 Pipeline 、Git checkout 、凭据、中断、agent 重启。
    • 真机 Solaris ( Oracle Java 8u60 )和 HP-UX 安腾( HP Java 8 )能装上、通过自检、作为 SSH agent 连上,完整构建还没确认。
    • AIX 7.1 真机跑过一次,发现 IBMJCE 签名 provider 的问题,已修,构建还没确认。

    最想要的是 AIX 上的反馈。手上有 AIX / HP-UX / Solaris 构建机的朋友如果愿意试一下,issue 或者直接在这里回复都行,踩到的坑我来修。也想听听大家现在是怎么处理这些老平台的。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   819 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 20:22 · PVG 04:22 · LAX 13:22 · JFK 16:22
    ♥ Do have faith in what you're doing.