Jenkins 部署
基础环境:
- 系统:AlmaLinux 9.6
- Java:21.0.9
- Jenkins:2.528.2
Jenkins 官方安装文档:Installing Jenkins
- 主要文档:WAR file
查看 Java 要求:Java Support Policy
- 这里部署 Jenkins LTS(版本号:2.528.2),使用 Java 21(版本号:21.0.9)
部署 JDK
- 查看最新版本号:Java Downloads
cd /data/septvean/bash/java
sudo bash -x deploy-jdk-21.sh 21.0.9
/usr/local/jdk/21.0.9/bin/java -version
# java version "21.0.9" 2025-10-21 LTS
# Java(TM) SE Runtime Environment (build 21.0.9+7-LTS-338)
# Java HotSpot(TM) 64-Bit Server VM (build 21.0.9+7-LTS-338, mixed mode, sharing)
部署 Jenkins
- 查看最新版本号:Jenkins Downloads
# 安装依赖包
sudo dnf install -y git git-core dejavu-sans-fonts fontconfig freetype xorg-x11-server-Xvfb
# 创建用户
sudo useradd -r -s /sbin/nologin jenkins
# 创建目录
# builder: 编译工具 目录
# data: Jenkins HOME 目录
# log: Jenkins 日志
# war: Jenkins War包 目录
sudo mkdir -pv /data/jenkins/{builder,data,log,war}
# 下载 War 包
cd /data/jenkins/war
sudo wget -c -O jenkins-2.528.2.war https://get.jenkins.io/war-stable/2.528.2/jenkins.war
sudo ln -svf jenkins-2.528.2.war jenkins.war
# 创建日志文件
sudo touch /data/jenkins/log/{error.log,run.log}
# 设置权限
sudo chown -R jenkins:jenkins /data/jenkins
# 设置环境变量
# export JENKINS_HOME='/data/jenkins/data'
# 启动 (端口 8910, 前缀 /jenkins) 用于测试
# /usr/local/jdk/21.0.9/bin/java \
# -jar jenkins.war \
# --httpPort=8910 \
# --prefix=/jenkins
# 其它参数
# java -jar jenkins.war --help
# 创建 service
# 将 httpListenAddress 设置为 127.0.0.1, 使用 Nginx 反向代理
sudo tee /etc/systemd/system/jenkins.service <<'EOF'
[Unit]
Description=Jenkins Server
After=network.target
[Service]
Type=simple
User=jenkins
Group=jenkins
# 环境变量
Environment="JENKINS_HOME=/data/jenkins/data"
# 工作目录
WorkingDirectory=/data/jenkins/war
# 启动命令
ExecStart=/usr/local/jdk/21.0.9/bin/java -jar jenkins.war --httpListenAddress=127.0.0.1 --httpPort=8910 --prefix=/jenkins
# 日志输出到文件
StandardOutput=append:/data/jenkins/log/run.log
StandardError=append:/data/jenkins/log/error.log
# 自动重启策略
Restart=always
RestartSec=5s
# 限制(可选)
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
# 创建服务
sudo systemctl daemon-reload
sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins
# ● jenkins.service - Jenkins Server
# Loaded: loaded (/etc/systemd/system/jenkins.service; enabled; preset: disabled)
# Active: active (running) since Thu 2025-12-11 16:28:06 CST; 8s ago
# Main PID: 40713 (java)
# Tasks: 31 (limit: 6270)
# Memory: 221.4M
# CPU: 13.445s
# CGroup: /system.slice/jenkins.service
# └─40713 /usr/local/jdk/21.0.9/bin/java -jar jenkins.war --httpListenAddress=127.0.0.1 --httpPort=8910 --prefix=/jenkins
# Dec 11 16:28:06 ss.server.com systemd[1]: Started Jenkins Server.
# 查看 Jenkins 日志
sudo journalctl -u jenkins -f
Nginx 配置:
location /jenkins {
# 代理
proxy_pass http://127.0.0.1:8910;
# 修正 Jenkins 返回的重定向路径
proxy_redirect 127.0.0.1 $scheme://$host/jenkins;
# 设置请求头
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 超时设置
proxy_connect_timeout 3s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
# 关闭代理缓冲
proxy_buffering off;
}
Nginx 加载配置:
nginx -t
nginx -s reload
访问:https://documents.v2ep.com/jenkins/
解锁 Jenkins
- 管理员密码
sudo cat /data/jenkins/data/secrets/initialAdminPassword
自定义Jenkins:选择插件来安装
- Organization and Administration
- Dashboard View
- Folders
- OWASP Markup Formatter
- Build Features
- 默认
- Build Tools
- 全不选
- Build Analysis and Reporting
- 默认 (全不选)
- Pipelines and Continuous Delivery
- Pipeline
- Source Code Management
- Git
- Git Parameter
- GitLab | GitHub (按需选择)
- Distributed Builds
- 全不选
- User Management and Security
- Matrix Authorization Strategy
- PAM Authentication
- Role-based Authorization Strategy
- Notifications and Publishing
- 全不选
- Appearance
- 全不选
- Languages
- Locale
- 安装
创建第一个管理员用户
- 不创建 -> “使用admin账户继续”
实例配置
- Jenkins URL 根据情况修改 (默认)
- 保存并完成
开始使用 Jenkins
Manage Jenkins
- Building on the built-in node can be a security issue. You should set up distributed builds. See the documentation.
- Dismiss(忽略)
- System Configuration -> System
- Usage Statistics (使用统计)
- ❌ Help make Jenkins better by sending anonymous usage statistics and crash reports to the Jenkins project
- Usage Statistics (使用统计)
- System Configuration -> Appearance
- Default Language:Use Default Locale - English (United States) (en_US)
- ✅ Ignore browser preference and force this language to all users
- ✅ Allow all users to use their own language preference
admin
- Security -> Password
重启 Jenkins
sudo systemctl restart jenkins
推荐安装以下插件:
- Blue Ocean
- Pipeline: Stage View Plugin
cd /data/jenkins/war/
ll
sudo wget -c -O jenkins-2.528.3.war https://updates.jenkins.io/download/war/2.528.3/jenkins.war
sudo ln -svf jenkins-2.528.3.war jenkins.war
sudo chown -R jenkins:jenkins jenkins.*
sudo systemctl restart jenkins.service