商城首页欢迎来到中国正版软件门户

您的位置:首页 >Linux怎么安装Jenkins并配置Java环境 Linux自动化部署实战详解

Linux怎么安装Jenkins并配置Java环境 Linux自动化部署实战详解

  发布于2026-05-04 阅读(0)

扫一扫,手机访问

Linux怎么安装Jenkins并配置Ja va环境 Linux自动化部署实战详解

Linux怎么安装Jenkins并配置Ja va环境 Linux自动化部署实战详解

在CentOS 8或者Rocky Linux 8上部署Jenkins,第一步往往就决定了成败:ja va -version的输出必须是1.8,也就是JDK 8。如果版本不对,Jenkins要么启动失败,要么Web界面根本打不开——这可以说是新手遇到的第一道,也是最常见的坎。

确认并安装 JDK 8,不是 OpenJDK 11 或 17

这里有个关键细节:CentOS 8默认通过yum install ja va安装的是OpenJDK 11,而Jenkins 2.3xx及更早的稳定版本对此并不兼容。所以,你必须明确安装Oracle JDK 8或者Red Hat提供的ja va-1.8.0-openjdk(注意版本号里必须包含1.8.0)。

  • 先检查当前环境:运行ja va -versionwhich ja va。如果显示的是openjdk version "11"或者路径指向/usr/lib/jvm/ja va-11-openjdk,那就意味着你需要更换Ja va版本。
  • 推荐安装命令:为了获得最佳的兼容性,直接执行yum install ja va-1.8.0-openjdk-devel.x86_64 -y
  • 环境变量验证:运行echo $JA VA_HOME,此时可能为空,但这通常没问题。因为Jenkins启动时,会依赖系统已存在的软链接路径,例如/usr/lib/jvm/jre-1.8.0,一般无需手动设置环境变量。
  • 特殊情况处理:如果你选择手动解压Oracle JDK,那么务必确保在/etc/profile文件中正确设置了JA VA_HOME=/usr/ja va/jdk1.8.0_XXX,并且执行了source /etc/profile。否则,后续以jenkins用户身份启动服务时,会找不到Ja va。

用 yum 安装 Jenkins,别用 war 包直启

在CentOS/Rocky 8这类生产环境中,强烈建议通过系统包管理器安装,而不是直接用ja va -jar jenkins.war启动。后者会绕过系统服务管理、日志轮转和用户权限控制,导致一系列后续问题,比如服务无法自动拉起、插件安装失败、/var/lib/jenkins目录权限混乱——尤其是当Jenkins需要调用gitmvn命令时,权限问题会立刻凸显。

  • 添加官方软件源sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
  • 导入GPG密钥sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
  • 执行安装sudo dnf install jenkins -y(Rocky 8使用dnf,CentOS 8两者皆可)
  • 关键验证步骤:安装后,务必确认Jenkins服务账户能访问Ja va:执行sudo -u jenkins ja va -version。如果报错command not found,那就说明JDK安装不正确或者路径没有被jenkins用户识别。

启动前必须改的两个配置项

文件/etc/sysconfig/jenkins是Jenkins服务配置的核心,启动前如果不调整,很可能会遇到8080端口冲突、JENKINS_HOME目录权限错误,甚至Jenkins完全不写日志的问题。

立即学习“Ja va免费学习笔记(深入)”;

  • 修改服务端口:设置JENKINS_PORT="8081",可以有效避免与服务器上其他Ja va服务(如Tomcat)的端口冲突。
  • 确认工作目录:保持JENKINS_HOME="/var/lib/jenkins"的默认设置。不要随意将其改为/root/jenkins或家目录下的路径,否则SELinux和systemd很可能会拒绝访问。
  • 检查运行用户:确保JENKINS_USER="jenkins"。切勿图方便改为root,这会带来极高的安全风险,而且部分插件(如Docker Pipeline)会明确拒绝在root上下文中运行。
  • 重载配置:修改完成后,必须执行sudo systemctl daemon-reload,让systemd重新读取配置。否则,systemctl start jenkins命令依然会使用旧参数。

首次访问 Jenkins 前,防火墙和初始密码怎么处理

配置完成后,如果在浏览器打不开http://ip:8081,90%的情况是防火墙在起作用,而不是Jenkins服务本身没有启动。

  • 放行防火墙端口:执行sudo firewall-cmd --permanent --add-port=8081/tcp添加规则,然后sudo firewall-cmd --reload使其生效。这是比直接关闭防火墙更安全的做法。
  • 获取初始密码:密码文件位置是固定的,运行sudo cat /var/lib/jenkins/secrets/initialAdminPassword即可查看并复制。注意,这个文件只在首次安装时生成一次,所以不要用tail -f去监控它。
  • 排查页面异常:如果遇到页面空白或503错误,首先查看日志:sudo journalctl -u jenkins -f。重点关注是否有Failed to load class org.slf4j.impl.StaticLoggerBinder(这通常是JDK版本错误导致)或Permission denied: /var/lib/jenkins(目录所有权错误)这类信息。
  • 插件安装卡顿:在插件安装阶段长时间无响应?可以临时将SELinux设置为宽容模式测试:sudo setenforce 0。确认问题后,应配置正确的SELinux策略,而不是长期关闭它。

最后,还有一个最容易被忽略的要点:Jenkins服务默认以jenkins用户运行,但这个用户的PATH环境变量里通常不包含gitmvn等构建工具。因此,在所有构建任务的配置中,对于需要调用的命令,必须在“全局工具配置”里显式指定其绝对路径,例如/usr/bin/git/opt/ma ven/bin/mvn,而不能简单地只写git。这一步没做,构建任务十有八九会失败。

本文转载于:https://www.php.cn/faq/2418293.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注