Nexus制品库与标准模板集成实现制品部署测试验证 - 第2节
2.1 Nexus Repository Manager 概述与版本选择
Nexus Repository Manager 是 Sonatype 公司推出的核心制品管理平台,支持 Maven、npm、Docker、PyPI、NuGet 等主流包格式的代理、托管与分发。根据部署场景与功能需求,分为 OSS(开源版)与 Pro(专业版)两个版本。
| 对比维度 | Nexus Repository OSS | Nexus Repository Pro |
|---|---|---|
| 许可证 | Apache 2.0 开源 | 商业授权(按节点/年订阅) |
| 核心功能 | 托管、代理、分组仓库;支持 Maven/npm/Docker/PyPI 等 | OSS 全部功能 + 智能镜像、高可用、SAML/SSO、高级审计 |
| 高可用 | 单实例部署 | 支持冷备/热备与集群 |
| 安全集成 | 内置 RBAC + 匿名访问 | LDAP/AD、SAML、JWT、IP 白名单 |
| 适用场景 | 中小团队、开源项目、CI/CD 基础集成 | 企业级合规、多团队协作、跨数据中心分发 |
选型建议: 本课程以 OSS 版为基础搭建环境,所有标准模板集成与制品部署验证功能在 OSS 版中均可完整实现。Pro 版功能仅在涉及高可用与高级安全策略时额外说明。
2.2 系统要求与环境准备
Nexus Repository Manager 基于 Java 运行,推荐使用专用服务器或虚拟机部署。以下为 OSS 3.x 版本的典型硬件与软件要求:
- 操作系统: CentOS 7.x / 8.x、Ubuntu 20.04 / 22.04、RHEL 7/8、Windows Server 2019+
- Java 环境: OpenJDK 8 或 11(推荐使用 AdoptOpenJDK / Temurin)
- CPU: 最低 2 核,推荐 4 核以上
- 内存: 最低 4 GB,推荐 8 GB(堆内存建议分配 2–4 GB)
- 磁盘: 至少 20 GB 可用空间(制品存储建议单独挂载大容量数据盘)
- 网络: 开放端口 8081(HTTP)与 5000–5003(Docker 仓库端口)
重要: 不要使用 root 用户运行 Nexus 进程。官方强烈建议创建专用系统用户
nexus,并确保数据目录(sonatype-work)的读写权限归属该用户。2.3 安装步骤(Linux 环境)
以下以 CentOS 7 + OpenJDK 11 为例,演示 Nexus OSS 的完整安装流程。
2.3.1 安装 Java 环境
# 安装 OpenJDK 11
sudo yum install -y java-11-openjdk-devel
# 验证 Java 版本
java -version
# 输出示例:openjdk version "11.0.18" 2023-01-17 LTS
2.3.2 创建专用用户与目录
# 创建 nexus 用户
sudo useradd -m -s /bin/bash nexus
# 创建安装目录
sudo mkdir -p /opt/nexus
sudo chown -R nexus:nexus /opt/nexus
2.3.3 下载并解压 Nexus OSS
# 切换到 nexus 用户
sudo su - nexus
# 下载最新 OSS 版本(以 3.61.0 为例)
wget https://download.sonatype.com/nexus/3/nexus-3.61.0-02-unix.tar.gz
# 解压到 /opt/nexus
tar -xzf nexus-3.61.0-02-unix.tar.gz -C /opt/nexus/
# 解压后目录结构
ls -l /opt/nexus/
# nexus-3.61.0-02 # 程序主目录
# sonatype-work # 数据与配置目录(首次启动自动生成)
2.3.4 配置 Nexus 运行参数
# 编辑 nexus 启动脚本,设置运行用户
vi /opt/nexus/nexus-3.61.0-02/bin/nexus.rc
# 取消注释并修改为:
run_as_user="nexus"
# 编辑 JVM 堆内存配置(根据服务器内存调整)
vi /opt/nexus/nexus-3.61.0-02/bin/nexus.vmoptions
# 示例配置(4 GB 堆内存):
-Xms2048m
-Xmx4096m
-XX:MaxDirectMemorySize=2G
2.3.5 启动 Nexus 服务
# 以 nexus 用户启动
sudo -u nexus /opt/nexus/nexus-3.61.0-02/bin/nexus start
# 查看启动日志
tail -f /opt/nexus/sonatype-work/nexus3/log/nexus.log
# 等待日志中出现以下内容表示启动成功:
# --------------------------------------------------
# Started Sonatype Nexus OSS 3.61.0-02
# --------------------------------------------------
启动耗时: 首次启动需要 2–5 分钟,Nexus 会在后台初始化数据库与内置仓库。请耐心等待日志输出完成,不要中途强制停止。
2.4 初始配置与管理员设置
Nexus 启动完成后,通过浏览器访问 http://<服务器IP>:8081 进入管理控制台。
2.4.1 获取初始管理员密码
# 查看初始密码文件
cat /opt/nexus/sonatype-work/nexus3/admin.password
# 输出示例:e3c8a9b1-7f2d-4a6e-9c0d-1b2a3c4d5e6f
使用用户名 admin 与上述密码登录后,系统会强制要求修改密码并配置安全设置。
2.4.2 配置匿名访问与安全 Realm
登录后依次完成以下配置:
- 修改管理员密码 — 输入新密码并确认。
- 配置匿名访问 — 建议在内部 CI/CD 环境中启用匿名读取,便于制品下载;生产环境可关闭。
- 配置 Realm — 进入 Administration → Security → Realms,确保
Local Authenticating Realm与Local Authorizing Realm处于激活状态。
2.4.3 创建管理员专用角色与用户(可选)
为 CI/CD 集成创建专用账号,避免直接使用 admin 账号:
# 通过 UI 操作:
# 1. 进入 Administration → Security → Roles → Create Role
# 角色 ID: ci-deploy-role
# 权限: nx-repository-view-*-*-* (所有仓库浏览)
# nx-repository-admin-*-*-* (所有仓库管理)
# nx--all (管理)
# 2. 进入 Administration → Security → Users → Create User
# 用户 ID: cicd-bot
# 密码: 自定义强密码
# 角色: ci-deploy-role
最佳实践: 为每个 CI/CD 工具链(Jenkins、GitLab CI、GitHub Actions)创建独立的 Nexus 用户,并分配最小必要权限。这样在审计日志中可以清晰追踪每次制品上传/下载的来源。
2.5 验证安装与基本功能
完成初始配置后,执行以下验证步骤确保环境就绪:
| 验证项 | 操作 | 预期结果 |
|---|---|---|
| Web UI 访问 | 浏览器打开 http://<IP>:8081 |
显示 Nexus 登录页面 |
| 管理员登录 | 使用 admin 或 cicd-bot 登录 | 进入仪表盘,无报错 |
| 仓库列表 | 点击 Repositories | 看到预置的 maven-central、maven-releases、maven-snapshots 等仓库 |
| API 健康检查 | curl -u admin:密码 http://<IP>:8081/service/rest/v1/status |
返回 JSON 格式的健康状态信息 |
| 上传测试 | 通过 UI 手动上传一个 jar 文件到 maven-releases | 文件出现在仓库中,可浏览与下载 |
验证通过后: 表示 Nexus 环境搭建完成,可以进入下一章《标准模板集成》的学习。后续所有制品部署与测试验证操作都将基于此环境进行。
2.6 Nexus 环境架构总览
下图展示了 Nexus 部署后的核心组件与外部集成关系,帮助理解各模块在 CI/CD 流程中的位置。