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的安装路径、日志的存在位置。
- 修改配置文件, 把java环境变量加入到jenkins的启动脚本中
vim /etc/init.d/jenkins +67
修改内容参考第4条 - 执行
service jenkins start
启动命令
-
查看日志,端口被占用。
- 需要再一次修改配置文件中端口,JENKINS_PORT修改为8081。
vim /etc/sysconfig/jenkins
JENKINS_PORT="8081"
- 重新启动服务,
service jenkins start
,需要输入密码,参考war包方式第5条。
14.OK 开始安装插件,安装成功。
初步成功,后续会对参数做调整,下一篇会记录发布工程过程中的坑。