centos 7 安装 Jenkins

前序

最近公司又买了一台服务器,正好需要搭建jenkins 在这里记录一下。

前置准备

  1. 安装jdk 1.8
    sudo yum install java-1.8.0-openjdk-devel
  2. 添加jenkins的centos源

    1
    2
    curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo
    sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
  3. 安装
    sudo yum install jenkins

  4. 启动
    sudo systemctl start jenkins

可能遇到的问题

添加防火墙

1
2
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload

无法启动

1
2
3
4
5
6
7
8
9
10
11
[root@iZuf6jb2xioncu2rm8h8utZ conf]# 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 Thu 2019-04-11 13:07:24 CST; 12s ago
Docs: man:systemd-sysv-generator(8)
Process: 4092 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)

Apr 11 13:07:24 iZuf6jb2xioncu2rm8h8utZ systemd[1]: Starting LSB: Jenkins Automation Server...
Apr 11 13:07:24 iZuf6jb2xioncu2rm8h8utZ runuser[4097]: pam_unix(runuser:session): session opened for user jenkins by (uid=0)
Apr 11 13:07:24 iZuf6jb2xioncu2rm8h8utZ jenkins[4092]: Starting Jenkins bash: /usr/bin/java: No such file or directory
Apr 11 13:07:24 iZuf6jb2xioncu2rm8h8utZ runuser[4097]: pam_unix(runuser:session): session closed for user jenkins

这是因为jenkins自动搜索jdk没找到的原因
首先你要找到你的jdk_home

1
2
[root@iZuf6jb2xioncu2rm8h8utZ conf]#  echo $JAVA_HOME
/usr/java/jdk1.8.0_202

然后将这个jdk路径加上/bin/java添加到candidates中

1
vim /etc/init.d/jenkins

修改之后

1
2
3
4
5
6
7
8
9
10
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
candidates="
/usr/java/jdk1.8.0_202/bin/java
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
"

最后刷新一下systemctl

1
systemctl daemon-reload

参考:https://linuxize.com/post/how-to-install-jenkins-on-centos-7/