Linux部署Jenkins的两种方式WAR & YUM实践

两种方式各有利弊,这里不详细说明,只重点记录部署过程中踩过的坑。

提前条件

linux服务器maven、jdk1.7环境已经配置完毕。

WAR包方式

首先下载最新版的jenkins.war

wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

执行 java -jar jenkins.war

出现错误信息 Jenkins requires Java8 or later, but you are running 1.7.0_80-b15.......

这个坑是因为最新版的jenkins需要jdk1.8以上,没有第一时间确认服务器上的jdk版本导致。

解决这个错误,需要升级服务器的jdk版本或者重新下载低版本的jenkins war包。

这里选择的是后一种方式。

下载2.19.3版本。

wget http://mirrors.jenkins.io/war-stable/2.19.3/jenkins.war

执行 java -jar jenkins.war
出现错误信息 Caused by: java.io.IOException: Failed to listen on port 8080
端口号被占用,查了资料找不到永久修改端口号的位置,为了不浪费时间暂时使用
.java -jar jenkins.war --ajp13Port=-1 --httpPort=8081临时修改端口号启动成功。
启动后会出现
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
9772dfb721534c55a6250e92934b617b
This may also be found at: /root/.hudson/secrets/initialAdminPassword
访问 http://服务器地址:8081/login
要求输入password,输入9772dfb721534c55a6250e92934b617b即可启动。

访问后会出现下载插件界面,下载即可。

总结

时间原因,暂未找到war包方式永久修改端口号的方式,后续会补充。

YUM方式

命令行安装

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum install jenkins

出现错误信息

完毕!

[root@192.168.0.253 /jenkins$]
[root@192.168.0.253 /jenkins$]vi /etc/sysconfig/jenkins
[root@192.168.0.253 /jenkins$]service jenkins start
Starting Jenkins bash: /usr/bin/java: 没有那个文件或目录

[失败]

获取服务器java版本/opt/java/jdk 得到版本号java version "1.7.0_80"

获取服务器jdk安装路径 echo $JAVA_HOME 得到路径/opt/java/jdk

编辑配置文件修改配置 vim /etc/init.d/jenkins

找到这段代码,在最后面添加/opt/java/jdk1.7.0_80/bin/java

candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.6.0/bin/java
/usr/lib/jvm/jre-1.6.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/bin/java
/opt/java/jdk1.7.0_80/bin/java
执行启动命令service jenkins start

出现错误信息

Starting Jenkins Jenkins requires Java8 or later, but you are running 1.7.0_80-b15 from /opt/java/jdk1.7.0_80/jre
java.lang.UnsupportedClassVersionError: 51.0
at Main.main(Main.java:124)

智商不在线-1-1-1-1-1,又下载了高版本的... 重新来。

yum方式安装jenkins比较慢,所以这次下载jenkins的rpm低版本包,然后安装。

先卸载高版本的jenkins,sudo yum remove jenkins

然后执行下载命令 wget pkg.jenkins-ci.org/redhat-stable/jenkins-2.19.3-1.1.noarch.rpm

rpm -ivh jenkins-2.19.3-1.1.noarch.rpm
rpm -ql jenkins-2.19.3-1.1.noarch

可以看到jenkins的安装路径、日志的存在位置。

图片.png

修改配置文件, 把java环境变量加入到jenkins的启动脚本中

vim /etc/init.d/jenkins +67

修改内容参考第4条

执行service jenkins start启动命令

图片.png

查看日志,端口被占用。

图片.png

需要再一次修改配置文件中端口,JENKINS_PORT修改为8081。

vim /etc/sysconfig/jenkins
JENKINS_PORT="8081"

重新启动服务,service jenkins start,需要输入密码,参考war包方式第5条。

图片.png

14.OK 开始安装插件,安装成功。

初步成功,后续会对参数做调整,下一篇会记录发布工程过程中的坑。