银河麒麟v10部署jenkins需适配systemd机制并解决jdk版本冲突,推荐yum源安装+war包升级、独立jdk17直启或docker容器化三种方案,均须放行8080/50000端口并校验sha256。

如果您在银河麒麟操作系统上部署Jenkins持续集成环境时遇到启动失败、Java版本不兼容、服务无法开机自启或插件加载异常等问题,则很可能是由于系统默认JDK版本与Jenkins官方LTS要求不匹配,或服务管理机制未适配麒麟OS的systemd规范。以下是针对银河麒麟V10(含SP2/SP3)安装Jenkins并完成CI基础环境搭建的多种可行方案:
一、使用官方YUM源安装并手动升级WAR包
该方式复用系统包管理器安装基础服务结构,再通过替换WAR包实现版本可控升级,避免源中陈旧版本(如2.303)导致插件兼容性问题。
1、添加Jenkins官方稳定版YUM仓库源:sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
2、导入GPG签名密钥以验证软件包完整性:sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
3、安装OpenJDK 11(麒麟V10默认JDK 8不满足Jenkins 2.426+要求):sudo yum install java-11-openjdk-devel -y
4、安装Jenkins基础服务:sudo yum install jenkins -y
5、停止当前服务并备份原WAR包:sudo systemctl stop jenkins && sudo cp /usr/share/java/jenkins.war /usr/share/java/jenkins.war.bak
6、下载最新LTS版WAR包(例如2.440.3)至指定路径:sudo wget -O /usr/share/java/jenkins.war https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/latest/jenkins.war
7、校验SHA256值是否与官网一致(防止传输损坏):sudo sha256sum /usr/share/java/jenkins.war
8、重启服务并设为开机自启:sudo systemctl daemon-reload && sudo systemctl enable --now jenkins
二、独立JDK 17 + WAR包直启方式
此方式完全隔离系统JDK,适用于需运行高版本Jenkins(如2.450+)且依赖JDK 17新特性的场景,规避系统级Java环境干扰。
1、创建独立JDK安装目录:sudo mkdir -p /opt/jdk17
2、下载并解压JDK 17压缩包(x86_64或aarch64按架构选择):sudo tar -xzf jdk-17.0.14_linux-x64_bin.tar.gz -C /opt/jdk17 --strip-components=1
3、设置权限并验证版本:sudo chown -R root:root /opt/jdk17 && /opt/jdk17/bin/java -version
4、创建Jenkins专用工作目录及权限:sudo mkdir -p /data/jenkins /data/jenkins_home && sudo chown -R jenkins:jenkins /data/jenkins*
5、下载Jenkins WAR包至/data/jenkins:sudo wget -O /data/jenkins/jenkins.war https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/latest/jenkins.war
6、编写systemd服务文件:sudo vim /usr/lib/systemd/system/jenkins-standalone.service
7、填入以下内容(严格注意路径与用户):[Unit] Description=Standalone Jenkins with JDK17 After=network.target [Service] Type=simple User=jenkins Group=jenkins Environment="JAVA_HOME=/opt/jdk17" Environment="JENKINS_HOME=/data/jenkins_home" ExecStart=/opt/jdk17/bin/java -Djava.awt.headless=true -Xms1g -Xmx4g -jar /data/jenkins/jenkins.war --httpPort=8080 --webroot=/data/jenkins_home/war Restart=on-failure [Install] WantedBy=multi-user.target
8、启用并启动服务:sudo systemctl daemon-reload && sudo systemctl enable --now jenkins-standalone
三、Docker容器化部署方式
该方式利用容器镜像封装完整运行时环境,天然规避主机JDK冲突与权限配置难题,特别适合ARM64架构(飞腾/鲲鹏)及快速验证场景。
1、确保Docker已安装并运行:sudo systemctl status docker || sudo systemctl start docker
2、创建Jenkins数据持久化目录并授权:sudo mkdir -p /data/jenkins_home && sudo chown -R 1000:1000 /data/jenkins_home
3、关闭SELinux(银河麒麟默认启用,会阻止容器挂载):sudo setenforce 0 && sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
4、拉取官方LTS镜像(自动适配宿主架构):sudo docker pull jenkins/jenkins:lts
5、运行容器并映射端口与卷:sudo docker run -d --name jenkins-lts --restart=always -p 8080:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts
6、放行防火墙对应端口:sudo firewall-cmd --add-port=8080/tcp --permanent && sudo firewall-cmd --add-port=50000/tcp --permanent && sudo firewall-cmd --reload
7、获取初始管理员密码:sudo docker exec jenkins-lts cat /var/jenkins_home/secrets/initialAdminPassword
四、防火墙与初始化访问配置
无论采用何种部署方式,Jenkins默认监听8080端口,若系统防火墙处于启用状态,必须显式放行,否则浏览器无法访问Web界面。
1、确认firewalld服务状态:sudo systemctl is-active firewalld
2、永久开放Jenkins HTTP端口(若使用非标端口请同步替换):sudo firewall-cmd --add-port=8080/tcp --permanent
3、若同时启用JNLP代理通信(如从节点连接),需额外放行50000端口:sudo firewall-cmd --add-port=50000/tcp --permanent
4、重载防火墙规则使配置生效:sudo firewall-cmd --reload
5、在浏览器中访问:http://[服务器IP地址]:8080
6、首次访问时需输入初始化密码,该密码位于Jenkins主目录下的secrets/initialAdminPassword文件中,路径依部署方式而定:/var/lib/jenkins/secrets/initialAdminPassword(YUM安装)或 /data/jenkins_home/secrets/initialAdminPassword(Docker/WAR直启)











