1.先决条件
- 在托管 Nexus Repository Manager9(任意装有docker环境的主机) 的计算机中安装 Docker(版本 20 或更高版本)。
- Artifactory 计算机和 Nexus Repository Manager 计算机中的用户必须具有管理员权限。
2.下载迁移脚本
官方文档:JFrog Help Center
wget https://releases.jfrog.io/artifactory/run/nexus-migrator/0.9.2/jfrog-nexus-migrator-0.9.2.sh
3.执行迁移
3.1生成配置文件
sh jfrog-nexus-migrator-0.9.2.sh config
- 添加以下 Artifactory 配置信息。
- JFrog 平台服务器名称:JFrog 平台服务器的标识符。
- JFrog 平台 URL:用于访问包含 Artifactory 实例的 JFrog 平台的 URL。
- JFrog 访问令牌:用于访问 JFrog 平台的 API 令牌。您可以将该字段留空,并在后续步骤中提供用户名和密码。
- JFrog 用户名:具有管理员权限的用户的用户名。
- JFrog 密码或 API 密钥:API 密钥或密码
- 输入 Nexus 服务器的以下配置信息。
- Nexus 工作目录
- Nexus 存储库管理器 URL
- Nexus 存储库管理器用户名
- Nexus 存储库管理器密码
- Artifactory 用户的默认密码
- 在 Nexus Repository Manager 中,导航至管理 > 系统信息。 workingDirectory 字段提供 Nexus 工作目录的位置。输入 Nexus 服务器的私有 IP 以提高性能,因为迁移脚本在同一台计算机上运行。将 URL 设置为 http://<私有 ip>:<端口>。如果为 Nexus 服务器配置了任何上下文路径,请输入 http://<private ip>:<port>/<context-path> 形式的 URL。Artifactory 用户的默认密码必须遵守以下规则。
- 至少八个字符
- 至少包含一个数字
- 至少包含一个小写字母
- 至少包含一个大写字母
该脚本从 Nexus 获取配置信息,在 Artifactory 中创建相应的存储库,将工件迁移到 Artifactory,并将安全配置迁移到 Artifactory。您可以在以下位置查看迁移到 Artifactory 的工件和配置的详细信息:migration.log文件,在工作目录中可用。该脚本在文件夹内创建基于 Nexus 的 YAML 文件和 JSON 文件,<working directory>/migration/nexus-migrator。
查看migration.log文件来验证迁移状态。日志文件详细说明了存储库、工件和安全实体的迁移状态。
3.2获得nexus repo信息
sh jfrog-nexus-migrator-0.9.2.sh getConfig
3.3修改配置信息,保留要迁移的存储库
该repositories.yaml文件包含要迁移到 Artifactory 的存储库的详细信息。您可以从此列表中删除不想迁移的存储库。
repositories.yaml
Repositories:
localRepositories:
helm-charts-test:
repoLayout: simple-default
type: helm
Blobstores:
- name: default
type: File
path: default
该repositories.list文件包含 Nexus 中的存储库列表以及要在 Artifactory 中创建的存储库的相应名称。您可以将 Artifactory 中存储库的值编辑为 Artifactory 支持的任何有效值。
repositories.list
repoName:
- source: helm-charts-test
target: helm-charts-test
3.4在Artifactory 创建repo
sh jfrog-nexus-migrator-0.9.2.sh createRepo
3.5执行迁移
sh jfrog-nexus-migrator-0.9.2.sh migrateArtifact
tail -f migration.log查看迁移日志