jenkins的安装—windows环境

Jenkins 2.5 Windows生产环境部署指南

一、系统环境要求

1.1 硬件要求

  • CPU: 4核心以上(推荐8核心)
  • 内存: 8GB以上(推荐16GB+)
  • 磁盘空间 : 50GB以上可用空间(推荐100GB+)
    • Jenkins安装: 1GB
    • 构建工作空间: 10GB+
    • 构建历史和日志: 20GB+
    • 插件和缓存: 5GB+
  • 网络: 稳定的网络连接

1.2 软件要求

  • 操作系统: Windows Server 2016/2019/2022 或 Windows 10/11
  • Java环境 :
    • JDK 17 、21、25
    • 设置JAVA_HOME环境变量
  • 浏览器: Chrome、Firefox或Edge(用于访问Jenkins Web界面)

1.3 权限要求

  • 管理员权限(用于安装Windows服务)
  • 网络配置权限(防火墙、端口)

二、部署前准备

2.1 系统检查清单

  • 确认Windows版本和补丁级别
  • 检查Java版本并配置JAVA_HOME
  • 确认磁盘空间充足
  • 检查网络连接和DNS解析
  • 确认防火墙配置(端口8080)
  • 准备管理员账户

2.2 网络规划

  • Jenkins主端口: 8080(可自定义)
  • JNLP端口: 50000(用于Agent连接)
  • HTTPS端口: 443(如需SSL)
  • 域名: 准备Jenkins访问域名(可选)

2.3 安全准备

  • 准备SSL证书(生产环境推荐)
  • 规划用户账户和权限策略
  • 准备备份存储位置

三、Jenkins 2.5 安装步骤

3.1 下载Jenkins

  1. 访问Jenkins官方下载页面:

    复制代码
    https://www.jenkins.io/download/
  2. 下载Windows稳定版安装包:

    • 选择LTS(长期支持)版本
    • 下载文件:jenkins-2.5.x.msijenkins.war
  3. 验证下载文件完整性(可选):

    powershell 复制代码
    # 计算文件哈希值
    certutil -hashfile jenkins.msi SHA256

3.2 安装Jenkins(MSI安装包方式)

方式一:使用MSI安装包
  1. 右键点击下载的MSI文件,选择"以管理员身份运行"

  2. 在安装向导中:

    • 安装路径 : 默认 C:\Program Files\Jenkins
    • 数据目录 : 默认 C:\ProgramData\Jenkins
    • 端口: 默认8080(可根据需要修改)
    • 服务名称: 默认Jenkins
  3. 安装完成后,Jenkins会自动作为Windows服务启动

  4. 验证服务状态:

    powershell 复制代码
    Get-Service Jenkins
方式二:使用WAR文件(推荐)
  1. 创建Jenkins目录:

    powershell 复制代码
    New-Item -Path "C:\Jenkins" -ItemType Directory -Force
  2. 将WAR文件复制到Jenkins目录

  3. 创建启动脚本 start-jenkins.bat

    batch 复制代码
    @echo off
    set JENKINS_HOME=C:\Jenkins\home
    java -jar jenkins.war --httpPort=8080
  4. 运行启动脚本

3.3 初始配置

3.3.1 获取管理员密码
  1. 打开日志文件:

    复制代码
    C:\ProgramData\Jenkins\logs\jenkins.log
  2. 查找初始管理员密码:

    复制代码
    请使用以下密码安装:
    *************************************************************
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    *************************************************************
  3. 或直接读取密码文件:

    powershell 复制代码
    Get-Content "C:\ProgramData\Jenkins\secrets\initialAdminPassword"
3.3.2 访问Web界面
  1. 打开浏览器访问:

    复制代码
    http://localhost:8080
  2. 输入初始管理员密码

3.3.3 安装推荐插件
  • 选择"安装推荐的插件"
  • 等待插件安装完成(约10-20分钟)
3.3.4 创建管理员账户
  • 用户名:admin(或自定义)
  • 密码:设置强密码
  • 全名:管理员姓名
  • 邮箱:管理员邮箱
3.3.5 配置实例地址
  • Jenkins URL : http://your-server:8080http://jenkins.yourdomain.com

四、生产环境优化配置

4.1 JVM参数优化

4.1.1 修改Jenkins服务配置
  1. 打开服务管理器:

    复制代码
    services.msc
  2. 找到Jenkins服务,右键"属性"

  3. 在"可执行路径"中添加JVM参数:

    复制代码
    "C:\Program Files\Java\jdk1.8.0_xxx\bin\java.exe" -Xrs -Xmx4096m -Xms2048m -XX:MaxPermSize=512m -Dhudson.slaves.NodeProvisioner.MARGIN=50 -Dhudson.slaves.NodeProvisioner.MARGIN0=0.85 -Djenkins.install.runSetupWizard=false -jar "C:\Program Files\Jenkins\jenkins.war" --httpPort=8080 --webroot="%LocalAppData%\Jenkins\war"
4.1.2 推荐JVM参数
powershell 复制代码
# 堆内存设置
-Xms2048m              # 初始堆大小2GB
-Xmx4096m              # 最大堆大小4GB(根据实际内存调整)

# 永久代设置
-XX:MaxPermSize=512m   # 最大永久代512MB
-XX:PermSize=256m      # 初始永久代256MB

# 垃圾回收优化
-XX:+UseG1GC           # 使用G1垃圾收集器
-XX:MaxGCPauseMillis=200
-XX:ParallelGCThreads=4

# 性能优化
-Xrs                   # 减少信号处理
-Djava.awt.headless=true

# Jenkins特定参数
-Dhudson.slaves.NodeProvisioner.MARGIN=50
-Dhudson.slaves.NodeProvisioner.MARGIN0=0.85
-Djenkins.model.Jenkins.slaveAgentPort=50000

4.2 执行器配置

  1. 登录Jenkins Web界面
  2. 进入"Manage Jenkins" → "Manage Nodes"
  3. 配置主节点执行器数量:
    • 小型环境:2-4个执行器
    • 中型环境:4-8个执行器
    • 大型环境:8+个执行器

4.3 系统属性配置

  1. 进入"Manage Jenkins" → "Configure System"
  2. 关键配置项:
    • 执行器数量: 根据CPU核心数设置
    • 构建队列: 保持默认
    • SCM checkout retry count: 3
    • 工作空间根目录 : C:\Jenkins\workspace
    • 构建记录根目录 : C:\Jenkins\jobs

4.4 安全配置

4.4.1 启用安全
  1. 进入"Manage Jenkins" → "Configure Global Security"
  2. 启用安全矩阵或基于角色的授权
4.4.2 配置访问控制
  • 安全域: Jenkins专有用户数据库
  • 授权策略 :
    • 矩阵授权策略(推荐)
    • 或基于角色的授权策略
4.4.3 CSRF保护
  • 启用"防止跨站点请求伪造"
4.4.4 代理配置
  • 如需通过代理访问外网,配置代理服务器

五、插件管理

5.1 必装插件清单

  • Git Plugin: Git版本控制支持
  • Subversion Plugin: SVN版本控制支持
  • Maven Integration: Maven构建支持
  • Pipeline: 流水线支持
  • Blue Ocean: 现代化UI界面
  • Docker Plugin: Docker集成
  • Kubernetes Plugin: Kubernetes集成
  • Credentials Binding: 凭据管理
  • SSH Agent: SSH支持
  • Email Extension: 邮件通知
  • Timestamper: 构建日志时间戳
  • Workspace Cleanup: 工作空间清理
  • Build Timeout: 构建超时控制

5.2 插件安装方法

  1. 进入"Manage Jenkins" → "Manage Plugins"
  2. 在"Available"标签页搜索插件
  3. 勾选需要安装的插件
  4. 点击"Install without restart"或"Download now and install after restart"

5.3 插件更新策略

  • 定期检查插件更新
  • 在测试环境验证后再更新生产环境
  • 关注插件安全公告

六、备份策略

6.1 备份内容

  • Jenkins主目录 : C:\ProgramData\Jenkins
  • 关键文件 :
    • config.xml: 主配置文件
    • jobs/: 所有任务配置
    • users/: 用户信息
    • secrets/: 敏感信息
    • plugins/: 已安装插件
    • credentials.xml: 凭据信息

6.2 备份脚本

创建备份脚本 backup-jenkins.ps1

powershell 复制代码
# Jenkins备份脚本
$JENKINS_HOME = "C:\ProgramData\Jenkins"
$BACKUP_DIR = "D:\JenkinsBackups"
$DATE = Get-Date -Format "yyyyMMdd_HHmmss"
$BACKUP_FILE = "$BACKUP_DIR\jenkins_backup_$DATE.zip"

# 创建备份目录
New-Item -Path $BACKUP_DIR -ItemType Directory -Force | Out-Null

# 停止Jenkins服务
Stop-Service Jenkins -Force

# 创建压缩备份
Compress-Archive -Path $JENKINS_HOME -DestinationPath $BACKUP_FILE

# 启动Jenkins服务
Start-Service Jenkins

# 清理30天前的备份
Get-ChildItem $BACKUP_DIR -Filter "jenkins_backup_*.zip" | 
    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | 
    Remove-Item -Force

Write-Host "备份完成: $BACKUP_FILE"

6.3 自动化备份

  1. 创建Windows计划任务:

    • 程序:powershell.exe
    • 参数:-ExecutionPolicy Bypass -File "D:\Scripts\backup-jenkins.ps1"
    • 触发器:每天凌晨2点执行
  2. 验证备份任务正常运行

6.4 恢复流程

  1. 停止Jenkins服务
  2. 解压备份文件到Jenkins主目录
  3. 启动Jenkins服务
  4. 验证配置和任务

七、监控和日志管理

7.1 系统监控

7.1.1 关键监控指标
  • JVM内存使用: 堆内存、非堆内存
  • 线程池状态: 活跃线程数、队列长度
  • 构建队列: 待处理构建数量
  • 执行器状态: 忙碌/空闲执行器
  • 磁盘空间: Jenkins主目录、工作空间
  • 系统资源: CPU、内存、网络
7.1.2 监控工具
  • Jenkins内置监控:

    • "Manage Jenkins" → "System Information"
    • "Manage Jenkins" → "Metrics"(需安装Metrics Plugin)
  • 外部监控:

    • Prometheus + Grafana
    • Zabbix
    • Nagios

7.2 日志管理

7.2.1 日志位置
  • 主日志 : C:\ProgramData\Jenkins\logs\jenkins.log
  • 访问日志 : C:\ProgramData\Jenkins\logs\access.log
  • 构建日志: 各任务的构建输出
7.2.2 日志轮转配置

修改 jenkins.xml 配置文件:

xml 复制代码
<service>
  <id>jenkins</id>
  <name>Jenkins</name>
  <description>This service runs Jenkins.</description>
  <executable>%BASE%\jre\bin\java</executable>
  <arguments>-Xrs -Xmx4096m -Xms2048m -Dhudson.slaves.NodeProvisioner.MARGIN=50 -Dhudson.slaves.NodeProvisioner.MARGIN0=0.85 -Djenkins.install.runSetupWizard=false -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%LocalAppData%\Jenkins\war"</arguments>
  <log mode="roll-by-size">
    <sizeThreshold>10240</sizeThreshold>
    <keepFiles>8</keepFiles>
  </log>
</service>
7.2.3 日志分析
  • 定期检查错误日志
  • 分析构建失败原因
  • 监控异常访问

八、性能优化

8.1 构建性能优化

  1. 并行构建: 配置多个执行器
  2. 构建缓存: 使用工作空间缓存
  3. 增量构建: 避免全量构建
  4. 资源限制: 限制构建资源使用

8.2 系统性能优化

  1. 磁盘I/O: 使用SSD存储
  2. 网络优化: 配置本地Maven仓库
  3. 数据库优化: 使用外部数据库(如MySQL)

8.3 插件优化

  1. 禁用不必要的插件
  2. 定期清理插件缓存
  3. 优化插件配置

九、安全加固

9.1 网络安全

  1. 防火墙配置:

    powershell 复制代码
    # 允许Jenkins端口
    New-NetFirewallRule -DisplayName "Jenkins HTTP" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow
    New-NetFirewallRule -DisplayName "Jenkins JNLP" -Direction Inbound -Protocol TCP -LocalPort 50000 -Action Allow
  2. SSL/TLS配置:

    • 安装SSL证书
    • 配置HTTPS访问
    • 禁用弱加密算法

9.2 访问控制

  1. 用户管理:

    • 创建最小权限用户
    • 定期审计用户权限
    • 禁用未使用的账户
  2. 权限控制:

    • 使用矩阵授权
    • 细粒度权限分配
    • 定期权限审查

9.3 凭据管理

  1. 凭据存储:

    • 使用Jenkins凭据存储
    • 加密敏感信息
    • 定期轮换密码
  2. 凭据使用:

    • 最小权限原则
    • 避免硬编码凭据
    • 使用凭据绑定

十、故障排查

10.1 常见问题

10.1.1 Jenkins无法启动
  • 检查Java版本兼容性
  • 查看日志文件错误信息
  • 检查端口占用情况
  • 验证JVM参数配置
10.1.2 构建失败
  • 检查构建日志
  • 验证工作空间权限
  • 检查依赖工具配置
  • 确认网络连接
10.1.3 性能问题
  • 监控系统资源使用
  • 检查JVM内存配置
  • 分析构建队列
  • 优化插件配置

10.2 日志分析

powershell 复制代码
# 查看最新错误日志
Get-Content "C:\ProgramData\Jenkins\logs\jenkins.log" -Tail 100 | Select-String "ERROR|WARN"

# 查看服务状态
Get-Service Jenkins | Format-List *

# 查看端口占用
netstat -ano | findstr :8080

10.3 应急处理

  1. 服务重启:

    powershell 复制代码
    Restart-Service Jenkins
  2. 强制停止:

    powershell 复制代码
    Stop-Service Jenkins -Force
  3. 清理缓存:

    • 清理工作空间
    • 清理构建历史
    • 清理插件缓存

十一、维护计划

11.1 日常维护

  • 检查服务运行状态
  • 监控系统资源使用
  • 查看错误日志
  • 验证备份任务

11.2 周期维护

  • 清理旧构建记录
  • 更新插件版本
  • 审查用户权限
  • 检查磁盘空间

11.3 月度维护

  • 性能评估
  • 安全扫描
  • 灾难恢复演练
  • 配置审查

十二、升级策略

12.1 升级准备

  1. 备份当前Jenkins配置
  2. 在测试环境验证新版本
  3. 通知用户维护窗口
  4. 准备回滚方案

12.2 升级步骤

  1. 停止Jenkins服务
  2. 备份Jenkins主目录
  3. 下载新版本WAR文件
  4. 替换WAR文件
  5. 启动Jenkins服务
  6. 验证功能正常

12.3 升级后验证

  • 检查服务状态
  • 验证用户登录
  • 测试构建任务
  • 检查插件兼容性
  • 验证配置完整性

十三、最佳实践

13.1 配置管理

  • 使用版本控制管理Jenkinsfile
  • 定期备份配置文件
  • 文档化配置变更
  • 实施配置审查

13.2 安全实践

  • 定期更新密码
  • 实施最小权限原则
  • 启用审计日志
  • 定期安全扫描

13.3 性能实践

  • 监控关键指标
  • 定期性能评估
  • 优化构建流程
  • 合理配置资源

13.4 运维实践

  • 建立监控告警
  • 制定应急预案
  • 定期维护检查
  • 持续改进优化

附录

A. 常用命令

powershell 复制代码
# 服务管理
Start-Service Jenkins
Stop-Service Jenkins
Restart-Service Jenkins
Get-Service Jenkins

# 日志查看
Get-Content "C:\ProgramData\Jenkins\logs\jenkins.log" -Tail 100 -Wait

# 配置备份
Copy-Item "C:\ProgramData\Jenkins\config.xml" "D:\Backup\config.xml"

# 端口检查
netstat -ano | findstr :8080

B. 配置文件位置

  • 主配置 : C:\ProgramData\Jenkins\config.xml
  • 服务配置 : C:\Program Files\Jenkins\jenkins.xml
  • 日志文件 : C:\ProgramData\Jenkins\logs\
  • 工作空间 : C:\ProgramData\Jenkins\workspace\
  • 任务配置 : C:\ProgramData\Jenkins\jobs\

C. 端口说明

  • 8080: Jenkins Web界面HTTP端口
  • 50000: JNLP代理连接端口
  • 443: HTTPS端口(如配置SSL)

D. 参考资料


相关推荐
..过云雨2 小时前
【负载均衡oj项目】03. compile_server编译运行服务设计
运维·c++·html·负载均衡
cg_ssh2 小时前
MinIO docker 集群
运维·docker·容器
知无不研2 小时前
Linux主函数的参数含义
linux·运维·服务器·主函数的参数
九成宫2 小时前
SSH 密钥操作经历与 VSCode 远程连接“找不到ssh安装”解决
运维·vscode·ssh
★浅_忆2 小时前
docker入门基础命令
linux·运维·服务器·docker·容器
liulilittle2 小时前
手动安装 Ubuntu 18.04 到 WSL(即使官方列表里没有它)
linux·运维·服务器·ubuntu·wsl·通信·vm
kaico20182 小时前
jenkins值之job的配置
java·jenkins
陈皮糖..2 小时前
docker-compose实验案例之基于docker容器化部署下 Flask+Redis 访问计数功能的实现与调优
linux·运维·redis·docker·微服务·flask·云计算
维度攻城狮2 小时前
TrendRadar:搭建新闻热搜自动化推送工具,打破信息差
运维·自动化·trendradar