jenkins的安装

解决CentOS7.6上Jenkins安装及启动问题
在CentOS7.6系统中安装Jenkins2.346.1(LTS)时,遇到准备就绪问题和端口冲突。解决方法包括:1)修改`hudson.model.UpdateCenter.xml`文件中的更新中心URL为清华大学开源软件镜像站;2)更改Jenkins服务配置文件中的默认端口以避免端口占用问题。

当前环境centos7.6

java JDK 1.8

jenkins版本:2.346.1(Long Term Support (LTS) Release Line)

注意点:jenkins和javaJDK版本有对应关系,否则安装不成功

rpm包下载:Index of /jenkins/redhat-stable/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

安装过程中出现:

问题1:一直出现Please wait while Jenkins is getting ready to work

解决方法: 找到jenkins工作目录,打开文件hudson.model.UpdateCenter.xml,把url修改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

[root@study ~]# find / -name *.UpdateCenter.xml
/var/lib/jenkins/hudson.model.UpdateCenter.xml
[root@study ~]# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>

问题2:安装过程中出现端口号被占用:Caused: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8080,需要更换端口号

解决方法:将8080端口改成其他未占用的端口号xxxx,依次执行如下2步:

a、修改vi /usr/lib/systemd/system/jenkins.service中端口号为xxxx,例如Environment="JENKINS_PORT=xxxx"

b、执行systemctl daemon-reload后,执行systemctl restart jenkins

Jan 02 23:35:22 study.centos.vbird jenkins[30692]: Caused: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8080
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:234)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at org.eclipse.jetty.server.Server.doStart(Server.java:401)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at winstone.Launcher.<init>(Launcher.java:202)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: Caused: java.io.IOException: Failed to start Jetty
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at winstone.Launcher.<init>(Launcher.java:206)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at winstone.Launcher.main(Launcher.java:405)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at java.lang.reflect.Method.invoke(Method.java:498)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at Main._main(Main.java:342)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at Main.main(Main.java:117)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: java.lang.NoClassDefFoundError: hudson/util/HudsonFailedToLoad
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at hudson.WebAppMain$3.run(WebAppMain.java:261)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: Caused by: java.lang.ClassNotFoundException: hudson.util.HudsonFailedToLoad
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:538)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
Jan 02 23:35:22 study.centos.vbird jenkins[30692]: ... 1 more
Jan 02 23:35:22 study.centos.vbird systemd[1]: jenkins.service: main process exited, code=exited, status=1/FAILURE
Jan 02 23:35:22 study.centos.vbird systemd[1]: Failed to start Jenkins Continuous Integration Server.

### 问题分析 Jenkins 服务启动失败可能由多个因素引起,以下是对相关问题的详细分析与解决方案。 #### 1. Jenkins 服务用户配置问题 在 `jenkins.service` 文件中配置了 `User=your_jenkins_user`,请确保 `your_jenkins_user` 是一个存在的系统用户。如果该用户不存在,Jenkins 服务将无法正常启动。可以通过以下命令检查用户是否存在: ```bash id your_jenkins_user ``` 如果用户不存在,可以使用以下命令创建用户: ```bash sudo useradd your_jenkins_user ``` 此外,确保脚本路径 `/home/soft/jenkins/jenkins_start.sh` 是正确的,并且 Jenkins 用户对该路径具有执行权限。可以通过以下命令检查脚本的权限: ```bash ls -l /home/soft/jenkins/jenkins_start.sh ``` 如果权限不足,可以使用以下命令修改权限: ```bash chmod +x /home/soft/jenkins/jenkins_start.sh ``` #### 2. Java 环境配置问题 Jenkins 需要 Java 运行环境,但 `yum install jenkins` 不会强制安装 Java。可以通过以下命令检查 Java 是否已安装: ```bash java -version ``` 如果 Java安装,可以使用以下命令安装 OpenJDK: ```bash sudo yum install java-1.8.0-openjdk ``` Jenkins 通常与 Sun 实现的 Java 兼容性最好,因此建议安装 Oracle JDK。可以从 Oracle 官网下载并安装 Oracle JDK。 #### 3. Jenkins 服务启动问题 在 CentOS 上,可以使用以下命令启动、停止和重启 Jenkins 服务: ```bash sudo service jenkins start sudo service jenkins stop sudo service jenkins restart ``` 确保 Jenkins 服务在系统启动时自动运行: ```bash sudo chkconfig jenkins on ``` #### 4. AWT 配置问题 如果 Jenkins 启动时提示 AWT 未正确配置,可能需要在启动命令中添加 `-Djava.awt.headless=true` 参数。可以通过修改 Jenkins 的启动脚本 `jenkins_start.sh` 来添加该参数: ```bash JAVA_OPTS="-Djava.awt.headless=true" ``` #### 5. Jenkins 服务日志检查 查看 Jenkins 服务的日志文件,通常位于 `/var/log/jenkins/jenkins.log`,以获取更多关于启动失败的详细信息。可以通过以下命令查看日志: ```bash tail -f /var/log/jenkins/jenkins.log ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值