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,查看启动日志并定位初始管理员密码路径。