目录
前言
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。
一、Jenkins安装要求
1、最低硬件要求
- 不少于256M内存
- 不低于1G磁盘
- 如果是使用docker方式安装,要求磁盘空间10G以上
2、java版本要求
开源 Devops 工具 Jenkins 宣布:从 6 月 28 日发布的 Jenkins 2.357 ,Jenkins 最低需要 Java 11。
Jenkins 2.357及以后的版本要求jdk版本最低11,否则启动时会报错
Jenkins 2.357以前的版本可以使用jdk8
二、安装步骤
1.安装java
这里不多赘述,参考链接
2.yum安装
2.1下载jenkins.repo、导入公钥
#下载jenkins.repo
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
#导入jenkins公钥
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
2.2安装jenkins
默认安装是最新版本,当前最新版本是2.360,对jdk的最低版本要求是11
#安装
yum install -y jenkins
2.3安装完成后目录说明
/usr/lib/jenkins/ #jenkins安装目录,WAR包会放在这里。
/etc/sysconfig/jenkins #jenkins配置文件
/var/lib/jenkins/ #默认的JENKINS_HOME。
/var/log/jenkins/jenkins.log #日志文件
2.4启动
#启动
systemctl start jenkins
#设置开机自启
systemctl enable jenkins.service
#如果是systemctl启动的话 配置文件加载的/usr/lib/systemd/system/jenkins.service这个配置文件
systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; vendor preset: disabled)
Active: active (running) since 一 2022-07-25 09:15:26 CST; 40min ago
Main PID: 1105 (java)
CGroup: /system.slice/jenkins.service
└─1105 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=9999
2.5查询初始密码
#查询初始密码
cat /var/lib/jenkins/secrets/initialAdminPassword
3.rpm安装
上述采用yum方式安装,默认会安装最新版本的jenkins,如果当前你的jdk环境是1.8又不想升级jdk版本,可以采用rpm方式安装3.5.7以前的版本,下面是安装方式
3.1.获取安装包
rpm包的下载不建议使用官方网站的镜像站,建议使用清华园的镜像站
地址为:Index of /jenkins/redhat/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.356-1.1.noarch.rpm --no-check-certificate
3.2.安装
yum -Uvh jenkins-2.356-1.1.noarch.rpm -y
rpm包安装时所执行的脚本,大体内容为增加了一个用户jenkins,将jenkins的启动脚本从rpm内释放到 /etc/init.d/ 和/etc/sysconfig 目录下
[root@localhost jenkins]# rpm -qa | grep jenkins
jenkins-2.356-1.1.noarch
[root@localhost jenkins]# rpm -qa --scripts | grep jenkins
/usr/bin/getent group jenkins &>/dev/null || /usr/sbin/groupadd -r jenkins &>/dev/null
/usr/bin/getent passwd jenkins &>/dev/null || /usr/sbin/useradd -g jenkins -s /bin/false -r -c "Jenkins Automation Server" \
-d "/var/lib/jenkins" jenkins &>/dev/null
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"
logger -t jenkins.installer "No previous config file /etc/sysconfig/jenkins found"
/usr/share/jenkins/migrate "/etc/sysconfig/jenkins" || true
systemctl preset jenkins.service >/dev/null 2>&1 || :
logger -t jenkins.installer "Checking ${2} ownership"
logger -t jenkins.installer "Found previous owner of ${2}: ${owner} "
if [ "${owner:-jenkins}" != "${JENKINS_USER:-jenkins}" ] ; then
logger -t jenkins.installer "Previous owner of ${2} is different than configured JENKINS_USER... Doing a recursive chown of ${2} "
chown -R ${JENKINS_USER:-jenkins} "$2"
elif [ "${JENKINS_USER:-jenkins}" != "jenkins" ] ; then
logger -t jenkins.installer "Configured JENKINS_USER is different than default... Doing a non recursive chown of ${2} "
chown ${JENKINS_USER:-jenkins} "$2"
logger -t jenkins.installer "No chown needed for ${2} "
# != jenkins, namely all cases but the default one (configured for jenkins owned by jenkins)
. /etc/sysconfig/jenkins
chownIfNecessary "/tmp/jenkins.installer.cacheowner" "/var/cache/jenkins"
chownIfNecessary "/tmp/jenkins.installer.logowner" "/var/log/jenkins"
chownIfNecessary "/tmp/jenkins.installer.workdirowner" ${JENKINS_HOME:-/var/lib/jenkins}
systemctl --no-reload disable jenkins.service > /dev/null 2>&1 || :
systemctl stop jenkins.service > /dev/null 2>&1 || :
systemctl try-restart jenkins.service >/dev/null 2>&1 || :
3.3.修改配置文件
vi /usr/lib/systemd/system/jenkins.service
3.4.启动并设置开机自启
#启动
systemctl start jenkins
#设置开机自启
systemctl enable jenkins.service
#如果是systemctl启动的话 配置文件加载的/usr/lib/systemd/system/jenkins.service这个配置文件
systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; vendor preset: disabled)
Active: active (running) since 一 2022-07-25 09:15:26 CST; 40min ago
Main PID: 1105 (java)
CGroup: /system.slice/jenkins.service
└─1105 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=9999
3.5.查看服务
## 启动服务
systemctl start jenkins.service
## 停止服务
systemctl stop jenkins.service
## 重启服务
service jenkinsrestart
systemctl restart jenkins.service
## 服务自启动
systemctl enable jenkins.service
## 服务关闭自动启动
systemctl disable jenkins.service
## 检查服务状态
systemctl status jenkins.service
## 显示所有已启动的服务
systemctl list-units --type=service