首先你要满足安装了centos7,jdk8(由于我使用的是jenkins2.346,以下所指皆为此版本,此外该版本是可以支持jdk8的 ,如果有使用其他版本jenkins,具体可参照https://mirrors.jenkins.io/war-stable/的对应关系来确定jdk版本),maven
首先检查是否已安装jenkins:
已rpm安装过Jenkins,现在先卸载
# 1.卸载
rpm -e jenkins
# 2.检查是否卸载成功
rpm -ql jenkins
# 3.彻底删除残留文件:
find / -iname jenkins | xargs -n 1000 rm -rf
安装jenkins可以使用几种方式。
第一种:手动下载rpm包安装。这里使用清华开源镜像站的链接https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/,找到jenkins-2.346-1.1.noarch.rpm下载。
安装jenkins
rpm -ivh jenkins-2.346-1.1.noarch.rpm
给Jenkins的配置文件赋予读写权限
chmod -R 777 /var/lib/jenkins
chmod -R 777 /var/cache/jenkins
chmod -R 777 /var/log/jenkins
# 或
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
使用systemctl启动,以前的老配置文件是不管用的,需要修改启动文件
vim /usr/lib/systemd/system/jenkins.service
修改以下配置,一定注意更改JAVA_HOME路径,不然启动时会报错,端口自己用哪个就配成哪个。
# Unix account that runs the Jenkins daemon
# Be careful when you change this, as you need to update the permissions of
# $JENKINS_HOME, $JENKINS_LOG, and (if you have already run Jenkins)
# $JENKINS_WEBROOT.
User=root
Group=root
# The Java home directory. When left empty, JENKINS_JAVA_CMD and PATH are consulted.
Environment="JAVA_HOME=/usr/java/jdk1.8"
# Port to listen on for HTTP requests. Set to -1 to disable.
# To be able to listen on privileged ports (port numbers less than 1024),
# add the CAP_NET_BIND_SERVICE capability to the AmbientCapabilities
# directive below.
Environment="JENKINS_PORT=9999"
# Set to true to enable logging to /var/log/jenkins/access_log.
Environment="JENKINS_ENABLE_ACCESS_LOG=true"
# Arbitrary additional arguments to pass to Jenkins.
# Full option list: java -jar jenkins.war --help
Environment="JENKINS_OPTS=--logfile=/var/log/jenkins/jenkins.log"
修改jenkins配置文件,添加jdk
vim /etc/init.d/jenkins
更改以下内容,注意第一行为我的jdk路径
# Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins.
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
candidates="
/usr/java/jdk1.8/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-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
"
修改权限
vim /etc/sysconfig/jenkins
修改以下内容
## Type: string
## Default: "jenkins"
## ServiceRestart: jenkins
#
# Unix user account that runs the Jenkins daemon
# Be careful when you change this, as you need to update
# permissions of $JENKINS_HOME and /var/log/jenkins,
# and if you have already run Jenkins, potentially other
# directories such as /var/cache/jenkins .
#
JENKINS_USER="root"
## Type: yesno
## Default: no
## ServiceRestart: jenkins
#
# Whether to enable access logging or not.
#
JENKINS_ENABLE_ACCESS_LOG="true"
全部修改完后,启动jenkins
# 修改完成启动
systemctl daemon-reload
# 启动
systemctl start jenkins.service
# 停止
systemctl stop jenkins.service
# 加入开机启动
systemctl enable jenkins.service
# 查看jenkins状态
systemctl status jenkins.service
如果启动失败,并提示
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details
此问题通常由于以下几点,反正我遇到的是这两种,其他情况还没遇到不好说
jdk版本不匹配问题,请参照jenkins版本与jdk版本对照,以及jenkins配置来定位问题;
jenkins配置文件中的JAVA_HOME配置路径不对。
如果启动成功但是无法访问,排除是否为防火墙问题
# 查看是否开启防火墙
systemctl status firewalld
# 若是为dead,则没有开启防火墙,需要开启防火墙:
systemctl start firewalld
# 查看是否开放端口9999:
firewall-cmd --list-ports
# 没有开放,则加入
firewall-cmd --permanent --zone=public --add-port=9999/tcp
# 重启防火墙
systemctl reload firewalld
# 再次查看是否开放
firewall-cmd --list-ports
访问jenkins地址 http://<ip或者域名>:9999
提示输入密码解锁

执行命令查看密码,将查出的密码复制粘贴到上图,并继续
cat /var/lib/jenkins/secrets/initialAdminPassword
选择安装推荐的插件

选择后,等待安装。
安装完成后创建用户名密码
实例配置,输入jenkins url,点保存并完成
至此,安装结束。