jenkins

安装

使用centos 7系统安装的jenkins服务,

使用安装包进行安装。

1
2
wget https://pkg.jenkins.io/redhat/jenkins-2.213-1.1.noarch.rpm
rpm -ivh jenkins-2.213-1.1.noarch.rpm

使用yum安装

添加 Jenkins 库到 yum 库,Jenkins 将从这里下载安装。

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

安装过程可能出现的问题

当未卸载干净jenkins再进行重装时可能会出现的问题

1
2
3
4
5
6
7
8
9
stat: cannot stat ‘/var/cache/jenkins’: No such file or directory
stat: cannot stat ‘/var/log/jenkins’: No such file or directory
stat: cannot stat ‘/var/lib/jenkins’: No such file or directory
error: %pre(jenkins-2.150.1-1.1.noarch) scriptlet failed, exit status 1
Error in PREIN scriptlet in rpm package jenkins-2.150.1-1.1.noarch
Verifying : jenkins-2.150.1-1.1.noarch 1/1

Failed:
jenkins.noarch 0:2.150.1-1.1

问题的关键是PREIN scriptlet,就是preinstall scriptlet,这是rpm在安装前执行的一段sh脚本,为安装创建相应的文件夹什么的。

上面的三个No such file or directory显然就是,这三个文件夹没有被创建好。

1
2
yum install jenkins  --downloadonly --downloaddir=/root
rpm --scripts -qp jenkins-2.150.1-1.1.noarch.rpm > jenkins.log

查看输出的日志

1
2
3
4
5
6
7
8
9
if [ -f "/etc/sysconfig/jenkins" ]; then
logger -t jenkins.installer "Found previous config file /etc/sysconfig/jenkins"
. "/etc/sysconfig/jenkins"
stat --format=%U "/var/cache/jenkins" > "/tmp/jenkins.installer.cacheowner"
stat --format=%U "/var/log/jenkins" > "/tmp/jenkins.installer.logowner"
stat --format=%U ${JENKINS_HOME:-/var/lib/jenkins} > "/tmp/jenkins.installer.workdirowner"
else
logger -t jenkins.installer "No previous config file /etc/sysconfig/jenkins found"
fi

这问题就很明白了,结合前面的stat报错,明确了就是这段报错误。这段的意思是,如果/etc/sysconfig/jenkins存在,执行下面一系列操作,应该是为了重复安装写的。

删除文件夹/var/lib/jenkins,/var/log/jenkins/,/var/cache/jenkins即可

启动

jenkins启动时会输出日志,可通过查看日志定位具体错误信息。

1
tail -f /var/log/jenkins/jenkins.log

使用rpm安装jenkins时,默认会创建jenkins:jenkins的用户以及用户组,如果用其他用户启动,需要将以下文件夹用户以及用户组变更

  1. /usr/lib/jenkins/jenkins.war WAR 包
  2. /etc/sysconfig/jenkins 配置文件
  3. /var/lib/jenkins/ 默认的 JENKINS_HOME 目录
  4. /var/log/jenkins/jenkins.log Jenkins 日志文件

启停服务,使用systemctl工具操作jenkins

1
2
3
systemctl start jenkins
systemctl stop jenkins
systemctl status jenkins

修改端口

vi /etc/sysconfig/jenkins修改JENKINS_PORT="8081"

防火墙

当虚拟机外部需要访问jenkins时,需要将centos的防火墙关闭

  1. 使用命令systemctl status firewalld.service查看防火墙状态
  2. 使用命令systemctl disable firewalld.service,即可永久禁止防火墙服务