centos7环境下Jenkins的安装
背景
手贱又上百度查 centos7安装jenkins,五花八门好吧。看着官方文档开搞吧,记录遇到的一些小坑
安装java环境
1.查看服务器版本
centos7,继续。
cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
2.安装java
yum install java
但对于centos有个问题,不可以安装成gcj
(GNU Compiler for the Java Programing Language),导致jenkins不工作,如果查看java版本类似如下,需要卸载,安装其他版本
java -version
java version "1.5.0"
gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3)
3.卸载异常版本:
yum remove java
4.搜索openJDK版本
yum search openjdk
#java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
#java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
#java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
...
5.安装openJDK
#安装`1.8.0`的
yum install java-1.8.0-openjdk
6.查看java版本
java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
安装jenkins
可以选择安装LTS Release版本,好像每半年迭代一次。或者Weekly Release,每一周或者两周更新一次。
最近的版本2.24
隔了两个礼拜,估计10月9号会发布最新为2.25,每个版本会有一些enhancement & bug fix。
1.拉取库的配置到本地对应文件
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
jenkins.repo内容是这样:
[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat-stable
gpgcheck=1
2.导入公钥
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
3.安装jenkins
#`-y`参数:回答全部问题为是
sudo yum -y install jenkins
基本安装完成。
顺便贴一下LTS安装指令,只是稍有不同:
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins
4.更新jenkins
yum update jenkins
熟悉jenkins配置
1.系统配置文件
vi /etc/sysconfig/jenkins
可以获得几个重要配置项目信息
-
JENKINS_HOME="/var/lib/jenkins"
,存放jenkins 配置及工作文件 -
JENKINS_PORT="8080"
,jenkins默认8080端口 -
JENKINS_USER="root"
, 以root用户运行jenkins中shell命令
2.配置文件夹
这个位置挺重要
ls /var/lib/jenkins
有jobs
、logs
、plugins
等文件夹及文件若干。勿乱删
这次主要看了看plugins
文件夹,所有插件都在里面,如插件ssh-slaves
,会有一个ssh-slaves
文件夹及ssh-slaves.jpi
。
当某个插件未安装成功时,会有一个以.tmp
结尾的文件
3.日志
logs相关两个位置:
-
/var/lib/jenkins/logs
有logs,暂时看来没记录啥,以后再追。 -
/var/log/jenkins/jenkins.log
,记录了插件安装等日志,失败信息原因等很清晰,重要
4.修改Jenkins相关文件夹用户权限
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
启动&配置
1.启动服务&重启服务
service jenkins start
# 重启Jenkins(若是其他方式安装的jenkins则重启方式略不同)
service jenkins restart
# 查看Jenkins进程所属用户
ps -ef | grep jenkins
# 若显示为root用户,则表示修改完成
2.浏览器访问
IP地址:8080
3.获取管理员密码
按提示,去/var/lib/jenkins/secrets/initialAdminPassword
,复制贴进去,continue
cat /var/lib/jenkins/secrets/initialAdminPassword
4.选择安装方式
默认推荐吧,左边的。第二个自定义插件,如果知道需要什么插件,插件都是干嘛的,再选custom吧
5.等待插件安装
如果正常,没啥说的。如果像这样,一些插件失败了,刷新页面,下一步。失败的插件后来再装。
image.png6.插件安装失败分析
这里贴一个相似的ISSUE,unsolved,就我个人遇到的可能有网络的原因
查看jenkins.log
,搜索failed
关键字,一些插件依赖credentials
,因为网络原因没安装成功credentials
,导致好几个没安装成功。
去jenkins管理界面手动安装吧
Caused by: java.io.IOException: Plain Credentials Plugin v1.3 failed to load.
- credentials v2.1.5 is missing. To fix, install v2.1.5 or later.
7.手动安装异常插件
系统管理 -> 管理插件 -> 可选插件,表格右上异步过滤,插件打勾,直接安装。安装插件就在这里安装。
[图片上传失败...(image-83ee3c-1561234674809)]
注意
异常插件处理的时候,这里需要注意插件之间的依赖关系,A插件依赖的B插件没安装成功,安装A之前先安装B,管理插件里的异常列表写的很清楚。
8.卸载jenkins
在某次自动安装插件时异常了一大片,刷新也没出现下一步,等待许久无果,删了重装
1.rpm -e jenkins
2.会有一些残留的文件分散在各地
find / -iname jenkins | xargs -n 1000 rm -rf
安装遇到的问题
[root@localhost jenkins]# service jenkins start
Starting jenkins (via systemctl): Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
[失败]
[root@localhost jenkins]# systemctl status jenkins.service
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since 一 2019-07-08 22:59:44 CST; 16s ago
Docs: man:systemd-sysv-generator(8)
Process: 4738 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)
7月 08 22:59:44 localhost.localdomain systemd[1]: Starting LSB: Jenkins Automation Server...
7月 08 22:59:44 localhost.localdomain runuser[4743]: pam_unix(runuser:session): session opened for user jenkins by (uid=0)
7月 08 22:59:44 localhost.localdomain jenkins[4738]: Starting Jenkins bash: /usr/java/jdk1.8.0_211/bin/java: 没有那个文件或目录
7月 08 22:59:44 localhost.localdomain runuser[4743]: pam_unix(runuser:session): session closed for user jenkins
7月 08 22:59:44 localhost.localdomain jenkins[4738]: [失败]
7月 08 22:59:44 localhost.localdomain systemd[1]: jenkins.service: control process exited, code=exited status=1
7月 08 22:59:44 localhost.localdomain systemd[1]: Failed to start LSB: Jenkins Automation Server.
7月 08 22:59:44 localhost.localdomain systemd[1]: Unit jenkins.service entered failed state.
7月 08 22:59:44 localhost.localdomain systemd[1]: jenkins.service failed.
解决方案:
注意划线的那句话,把java路径找不到,所以先找到java的安装路径,可以用whereis java来找路径,比如java路径是
/usr/local/jdk1.8/bin/java ,按照下面的进行配置即可
vim /etc/rc.d/init.d/jenkins
candidates="
************
************
/usr/local/jdk1.8/bin/java "
9.彻底卸载jenkins
service jenkins stop
yum clean all
yum -y remove jenkins
rm -rf /var/cache/jenkins
rm -rf /var/lib/jenkins/
或者
yum remove jenkins
完。
参考链接: