-
安装 Java。目前一般jdk要求11以上,否则会报错
-
手动添加 Jenkins 仓库
先创建一个专门的Jenkins文件夹:mkdir jenkins
然后 执行
sudo curl -fsSL https://pkg.jenkins.io/redhat/jenkins.io.key -o /etc/pki/rpm-gpg/jenkins.io.key
然后,更新你的仓库配置文件。编辑或创建 /etc/yum.repos.d/jenkins.repo
文件,内容如下:
Jenkins
name=Jenkins
baseurl=https://pkg.jenkins.io/redhat/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/jenkins.io.key
enabled=1
- 清理 YUM 缓存并安装
sudo yum clean all
sudo yum makecache
再尝试安装Jenkins
sudo yum install jenkins
启动 Jenkins 服务
sudo systemctl start jenkins
sudo systemctl enable jenkins
- 检查 Jenkins 状态
sudo systemctl status jenkins
可能遇到的一些问题
1.例如会报以下错误:
bash
Jul 14 14:24:53 iZ7xv7q3yjgje58dc089w0Z systemd[1]: start request repeated too quickly for jenkins.service
Jul 14 14:24:53 iZ7xv7q3yjgje58dc089w0Z systemd[1]: Failed to start Jenkins Continuous Integration Server.
Jul 14 14:24:53 iZ7xv7q3yjgje58dc089w0Z systemd[1]: Unit jenkins.service entered failed state.
Jul 14 14:24:53 iZ7xv7q3yjgje58dc089w0Z systemd[1]: jenkins.service failed.
Jul 14 14:24:59 iZ7xv7q3yjgje58dc089w0Z systemd[1]: [/usr/lib/systemd/system/jenkins.service:16] Unknown lvalue 'StartLimitBurst' in section 'Unit'
Jul 14 14:24:59 iZ7xv7q3yjgje58dc089w0Z systemd[1]: [/usr/lib/systemd/system/jenkins.service:17] Unknown lvalue 'StartLimitIntervalSec' in section 'Unit'
找到并编辑 /usr/lib/systemd/system/jenkins.service
文件,找到以下对应的两行配置
StartLimitBurst=5
StartLimitIntervalSec=0
删除或者注释掉
- 错误2 jdk版本不对应
bash
Jul 14 17:43:15 iZ7xv7q3yjgje58dc089w0Z systemd[1]: Starting Jenkins Continuous Integration Server...
Jul 14 17:43:16 iZ7xv7q3yjgje58dc089w0Z jenkins[1147]: Error: A JNI error has occurred, please check your installation and try again
Jul 14 17:43:16 iZ7xv7q3yjgje58dc089w0Z jenkins[1147]: Exception in thread "main" java.lang.UnsupportedClassVersionError: executable/Main has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
Jul 14 17:43:16 iZ7xv7q3yjgje58dc089w0Z jenkins[1147]: at java.lang.ClassLoader.defineClass1(Native Method)
排除Jenkins问题常用命令
journalctl -u jenkins.service -n 100 --no-pager
-
journalctl
:是用于查看系统日志的工具,特别是与systemd
相关的日志。它能帮助你查看服务的日志、错误信息以及其他系统事件。 -
-u jenkins.service
:表示你要查看的是与jenkins.service
相关的日志。这里的-u
是unit
的缩写,jenkins.service
是 Jenkins 服务的名字。 -
-n 100
:表示显示最后的 100 行日志。如果你想查看更多或更少的日志,可以调整这个数字。 -
--no-pager
:表示日志输出时不使用分页工具(如less
)。通常,journalctl
会分页输出日志,但加上--no-pager
之后,它会一次性输出所有日志,而不会等待用户输入以查看更多内容。