需独立安装jdk 11、校验jenkins war包完整性、配置systemd服务并放行8080端口,否则jenkins无法启动或立即崩溃;具体包括下载适配架构的openjdk 11、设置java_home、校验sha256、创建jenkins用户与服务单元、配置firewalld。

在银河麒麟操作系统V10 SP2环境下部署Jenkins,需绕过系统默认JDK 1.8的兼容性限制,独立安装JDK 11、校验官方WAR包完整性、配置systemd服务单元并放行防火墙端口,否则Jenkins将无法启动或启动后立即崩溃。
安装适配的JDK 11运行环境
麒麟OS预装JDK 1.8,但Jenkins 2.426+ LTS强制要求JDK 11,直接使用系统默认Java会导致服务启动失败并报错“Unsupported Java version”。
执行uname -m确认架构(x86_64或aarch64),下载对应OpenJDK 11压缩包,例如openjdk-11.0.20_linux-x64_bin.tar.gz。
创建统一Java安装目录:sudo mkdir -p /usr/java。
解压至指定路径:sudo tar -xzf openjdk-11.0.20_linux-x64_bin.tar.gz -C /usr/java/。
重命名解压目录为jdk-11.0.20,并验证版本:/usr/java/jdk-11.0.20/bin/java -version必须输出openjdk version "11.0.20";【若显示1.8或报command not found,请检查路径拼写与权限】。
获取并校验Jenkins官方WAR包
跳过麒麟软件源中陈旧的Jenkins 2.3xx版本,直接采用官网LTS WAR包可规避插件兼容性问题和启动卡死现象。
方法一:手动下载校验
创建部署目录:sudo mkdir -p /opt/jenkins → 进入目录:cd /opt/jenkins → 下载最新LTS版:sudo wget https://mirrors.jenkins.io/war-stable/latest/jenkins.war。
访问https://www.jenkins.io/changelog-stable/找到当前LTS版本页,复制其公布的SHA256摘要值。
执行sudo sha256sum jenkins.war,比对输出哈希值与官网一致;【不一致必须删除重下,否则启动时会因类加载异常退出】。
配置systemd服务实现稳定托管
用nohup启动Jenkins在麒麟OS下极易因SSH会话断开而终止进程,且无日志归集、无法自动重启。systemd是唯一可靠方案。
第一步:创建专用系统用户
sudo useradd -r -m -U -d /var/lib/jenkins -s /bin/false jenkins。
第二步:设置JENKINS_HOME权限
sudo chown -R jenkins:jenkins /var/lib/jenkins → sudo chmod -R 755 /var/lib/jenkins。
第三步:编写服务文件
执行sudo vim /usr/lib/systemd/system/jenkins.service,填入以下内容(注意严格替换路径):
[Unit]Description=Jenkins Continuous Integration ServerAfter=network.target[Service]Type=simpleUser=jenkinsGroup=jenkinsEnvironment="JENKINS_HOME=/var/lib/jenkins"ExecStart=/usr/java/jdk-11.0.20/bin/java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /opt/jenkins/jenkins.war --httpPort=8080[Install]WantedBy=multi-user.target
开放端口并启动服务
麒麟OS默认启用firewalld,8080端口被拦截将导致浏览器无法访问Jenkins首页。
执行sudo firewall-cmd --add-port=8080/tcp --permanent → sudo firewall-cmd --reload。
重载服务配置:sudo systemctl daemon-reload。
启动Jenkins:sudo systemctl start jenkins。
设为开机自启:sudo systemctl enable jenkins。
验证状态:sudo systemctl status jenkins,看到active (running)且进程PID存在即成功。











