Skip to main content
Documents
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Jenkins 部署

基础环境:

  • 系统:AlmaLinux 9.6
  • Java:21.0.9
  • Jenkins:2.528.2

Jenkins 官方安装文档:Installing Jenkins

查看 Java 要求:Java Support Policy

  • 这里部署 Jenkins LTS(版本号:2.528.2),使用 Java 21(版本号:21.0.9)

部署 JDK

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

# 安装依赖包
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
  • 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

更新 Jenkins

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