18.1.2 安装方式与系统要求
安装方式与系统要求#
系统要求与前置条件#
- 操作系统:主流Linux发行版(CentOS 7/8、Rocky/Alma 8/9、Ubuntu 20.04/22.04)。
- CPU/内存:最低2C/4G;推荐4C/8G以上,按并发构建数扩容。
- 磁盘:JENKINS_HOME建议SSD与独立分区,至少20GB起步。
- 网络与端口:HTTP 8080、JNLP 50000(代理节点)需可达。
- JDK:Jenkins LTS建议Java 11/17。
- 时间同步:NTP/Chrony开启。
可执行检查示例(含解释与预期):
# 1) 查看系统与内核
cat /etc/os-release
uname -r
# 2) CPU/内存/磁盘检查
lscpu | grep -E 'Model name|CPU\(s\)'
free -h
df -h /var/lib/jenkins
# 3) 检查端口占用
ss -lntp | grep -E '8080|50000' || echo "端口未占用"
# 4) 检查Java版本
java -version
# 预期输出包含 "11" 或 "17"
安装方式对比(含原理草图)#
Jenkins的典型部署形态如下:
- 包管理安装:系统服务化、易升级、适合生产。
- WAR包部署:单文件启动、方便实验。
- 容器化部署:环境隔离、弹性扩展,需处理持久化与权限。
包管理安装(示例与命令解释)#
RHEL/CentOS/Rocky/Alma#
# 1) 安装依赖与JDK(以Java 11为例)
sudo dnf install -y fontconfig java-11-openjdk
# 2) 添加Jenkins仓库
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# 3) 安装与启动
sudo dnf install -y jenkins
sudo systemctl enable --now jenkins
# 4) 验证端口
ss -lntp | grep 8080
Ubuntu/Debian#
# 1) 安装JDK
sudo apt update
sudo apt install -y fontconfig openjdk-11-jre
# 2) 添加仓库
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
# 3) 安装与启动
sudo apt update
sudo apt install -y jenkins
sudo systemctl enable --now jenkins
关键命令解释:
- systemctl enable --now jenkins:开机自启并立即启动。
- ss -lntp:检查监听端口与进程。
WAR包部署(快速实验)#
# 1) 下载LTS版本
wget -O /opt/jenkins.war https://get.jenkins.io/war-stable/latest/jenkins.war
# 2) 指定JENKINS_HOME并启动
export JENKINS_HOME=/opt/jenkins_home
mkdir -p $JENKINS_HOME
java -jar /opt/jenkins.war --httpPort=8080
# 预期:终端输出“Jenkins is fully up and running”
容器化部署(Docker示例)#
# 1) 创建持久化目录
mkdir -p /data/jenkins_home
# 2) 启动容器
docker run -d --name jenkins \
-p 8080:8080 -p 50000:50000 \
-v /data/jenkins_home:/var/jenkins_home \
-e JAVA_OPTS="-Xms512m -Xmx2g" \
jenkins/jenkins:lts
# 3) 查看日志
docker logs -f jenkins
目录与权限规划#
- JENKINS_HOME:默认
/var/lib/jenkins,建议单独磁盘。 - 日志:systemd日志与应用日志分离,便于排错。
- 权限:使用
jenkins独立账号,避免root运行。
示例:调整目录与权限
sudo mkdir -p /data/jenkins_home
sudo chown -R jenkins:jenkins /data/jenkins_home
sudo sed -i 's#JENKINS_HOME=.*#JENKINS_HOME=/data/jenkins_home#g' \
/etc/sysconfig/jenkins
sudo systemctl restart jenkins
关键依赖与兼容性提示(含工具链)#
# Git/Maven/Node按需安装示例
sudo dnf install -y git maven nodejs
# Jenkins主机验证工具版本
git --version
mvn -version
node -v
常见安装故障排查#
1) 启动失败:Java版本不兼容
java -version
# 解决:安装Java 11/17并替换默认java
sudo alternatives --config java
2) 端口被占用
ss -lntp | grep 8080
# 解决:修改端口
sudo sed -i 's/^JENKINS_PORT=.*/JENKINS_PORT=9090/' /etc/sysconfig/jenkins
sudo systemctl restart jenkins
3) 访问空白/502(反向代理配置不当)
# 检查Nginx到Jenkins联通
curl -I http://127.0.0.1:8080/login
4) 权限错误导致无法写入
sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo systemctl restart jenkins
练习#
1) 在本机完成包管理安装,修改端口为9090并验证访问。
2) 使用WAR包方式启动第二个Jenkins实例,端口设为9080,并指定不同JENKINS_HOME。
3) 使用Docker方式部署,设置内存参数-Xmx1g,查看启动日志并定位初始管理员密码路径。