百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

从 Sonatype Nexus Repository Manager 迁移到 Artifactory

bigegpt 2025-07-09 11:03 8 浏览

1.Nexus

1.1下载

下载链接:

https://help.sonatype.com/repomanager3/product-information/download/download-archives---repository-manager-3

点击图中链接下载

1.2安装

将压缩包上传到服务器,绿色安装,所以直接解压即可

#解压

tar -xvzf /root/nexus-3.29.2-02-unix.tar.gz

1.3启动

方式一:前台启动

cd /root/nexus-3.29.2-02/bin

./nexus run

#启动成功如下图,第一次加载时间稍长

退出按住ctrl+c即可

方式二:后台启动

cd /root/nexus-3.29.2-02/bin

#启动,第一次加载时间稍长

./nexus start

#停止

./nexus stop

#查看状态

./nexus status

数据目录:sonatype-work/neuxs3

1.4登录访问界面

访问nexusUI界面

登录http://IP:8081

根据提示找到初始密码:

cd /root/sonatype-work/nexus3

cat admin.password

修改密码

启动匿名访问

完成

1.5创建仓库

新建仓库,输入仓库名,采用默认配置,创建

1.6上传制品

2. Docker

在安装nexus的服务器上安装docker

2.1设置存储库

安装yum-utils包(提供yum-config-manager实用程序)并设置存储库。

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

2.2安装Docker 引擎

sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

如果提示接受 GPG 密钥,请验证指纹是否匹配060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配,则接受。

此命令安装 Docker,但不会启动 Docker。它还会创建一个docker组,但是默认情况下不会向该组添加任何用户。

2.3启动

#启动

sudo systemctl start docker

#验证 Docker 引擎是否已正确安装hello-world

sudo docker run hello-world

此命令下载测试图像并在容器中运行它。当容器运行时,它会打印一条消息并退出。

3.一步迁移

3.1启用脚本执行

#Nexus Repository Manager 启用脚本执行

vim /root/sonatype-work/neuxs3/etc/nexus.properties

#添加如下

nexus.scripts.allowCreation=true

#重启nexus

cd /root/nexus-3.29.2-02/bin/

./nexus restart


3.2下载

下载迁移脚本

https://releases.jfrog.io/artifactory/run/nexus-migrator/0.8.11/jfrog-nexus-migrator-0.8.11.sh?_gl=1*1kqtq1d*_ga*MTA1NzI4NjM2NC4xNjYyNjA0MDkw*_ga_SQ1NR9VTFJ*MTY3MDkxNjQ2NC4xNjguMS4xNjcwOTE2NDcxLjUzLjAuMA..

上传到nexus服务器

#给脚本权限

chmod 777 jfrog-nexus-migrator-0.8.11.sh

3.3开始迁移

一步迁移所有实体

./jfrog-nexus-migrator-0.8.11.sh all

1.添加以下 Artifactory 配置信息。

·JFrog 平台服务器名称:JFrog 平台服务器的标识符。

·JFrog 平台 URL:用于访问包含 Artifactory 实例的 JFrog 平台的 URL。

·JFrog 访问令牌:用于访问 JFrog 平台的 API 令牌。您可以将该字段留空并在后续步骤中提供用户名和密码。

·JFrog 用户名:具有管理员权限的用户的用户名。

·JFrog 密码或 API 密钥:API 密钥或密码。

2.为 Nexus 服务器输入以下配置信息。

·Nexus 工作目录

·Nexus 存储库管理器 URL

·Nexus Repository Manager 用户名

·Nexus 存储库管理器密码

·Artifactory 用户的默认密码

该脚本从 Nexus 中获取配置信息,在 Artifactory 中创建相应的存储库,将制品迁移到 Artifactory,并将安全配置迁移到 Artifactory。

3.4检查迁移状态

您可以在工作目录中的migration.log文件中检查迁移到Artifactory的制品和配置的详细信息。该脚本基于文件夹/migration/nexus-migrator内的Nexus创建YAML文件和JSON文件。

检查migration.log文件以验证迁移状态。日志文件详细说明存储库、制品和安全实体的迁移状态。

#检查迁移状态

cat migration.log

检查JFrog的UI界面

迁移成功!

注意:

当存在与 Artifactory 中同名的现有存储库时,如果存储库的类型与 Nexus Repository 不同,则迁移将失败。

如果在同名存储库中存在同名制品,则来自 Nexus 的制品将覆盖现有制品。为避免这些问题,请验证存储库具有不同的名称,并且在Artifactory 的当前存储库中没有同名的制品。

此外,在开始迁移之前,请确认Artifactory 中不存在具有相同名称的现有用户。迁移脚本用 Nexus Repository Manager 中的用户覆盖现有用户。

Artifactory 不支持名称以字母以外的任何字符开头的存储库。因此,迁移脚本将这些存储库重命名为m-<repository name in Nexus>. 例如,如果Nexus Repository Manager 中的仓库名称是101-Maven,则该仓库在Artifactory 中被重命名为m-101-Maven。如果要配置此名称,则必须分多个阶段运行迁移脚本并编辑迁移配置。

4.分步迁移

4.1分步迁移命令

如果您想单独经历不同的阶段,请按以下顺序使用选项运行脚本。

./jfrog-nexus-migrator-0.8.11.sh config

./jfrog-nexus-migrator-0.8.11.sh getConfig

./jfrog-nexus-migrator-0.8.11.sh createRepo

./jfrog-nexus-migrator-0.8.11.sh migrateArtifact

./jfrog-nexus-migrator-0.8.11.sh migrateSecurity

下表提供了有关迁移器脚本可用选项的信息。

选项

描述

all

一步运行迁移脚本。

config, c

配置有关 Artifactory 和 Nexus Repository 的信息。

getConfig, gc

从 Nexus 存储库获取配置信息。

createRepo, cr

在 Artifactory 中创建目标存储库。

migrateArtifact, ma

将制品从 Nexus 存储库迁移到 Artifactory。

--repos除了指定要迁移的存储库之外, 您还可以使用可选命令。

例如,命令, 迁移 docker-local 和 maven-release 存储库并忽略其余存储库。./jfrog-nexus-migrator-<version>.sh ma --repos="docker-local,maven-release"

您还可以使用通配符输入来迁移满足条件的所有存储库。

比如 /jfrog-nexus-migrator-<version>.sh ma --repos="docker*,maven*"command,迁移所有以docker或者maven开头的仓库。

migrateSecurity, ms

将用户、组和权限目标从 Nexus 存储库迁移到 Artifactory。

您可以依次使用getConfig, createRepo, migrateArtifact, 和migrateSecurity 运行迁移脚本,以将新对象从当前配置的 Nexus Repository Manager加载到Artifactory 。

如果您在 Nexus 3 安装上暂停迁移过程并在稍后恢复,则迁移脚本只会迁移在您暂停该过程后添加的那些存储库和安全实体。如果在 Nexus 2 安装上进行迁移,迁移脚本会迁移 Nexus 存储库中的所有存储库和安全实体,无论它们是否在您暂停迁移过程之前已迁移。

迁移脚本基于文件夹内的 Nexus Repository Manager 创建 YAML 文件和 JSON 文件,<working directory>
/migration/nexus-migrator.

迁移脚本创建以下配置文件:

·migrationConfig.yaml

·repositories.list

·repositories.yaml

·security.json

·securityLdapConf.yaml

·securityRegexMap.list

4.2编辑迁移配置[可选]

./jfrog-nexus-migrator-0.8.11.sh config

使用该config选项运行迁移脚本后,迁移脚本会在migration/nexus-migrator文件夹内创建文件migrationConfig.yaml

编辑

cd migration/nexus-migrator

vim migrationConfig.yaml


更新 YAML 文件中threadsunder的值migrator以设置迁移脚本要使用的线程数。默认情况下,线程数设置为机器内核数的一半。如果您发现 Nexus Repository Manager 机器性能低下,您可以减少这个数字并再次运行迁移脚本。

更新 YAML 文件中targetunder的值,repoRegex以将名称设置为以非字母开头的存储库为前缀。不要编辑方括号中的值(例如[REPO]),因为它们是 Nexus 中使用的关键字。您还可以添加新的源和目标,以便在 Artifactory 中为存储库使用不同的名称。例如,如果存储库以名称“dfault”开头,而您想将其更改为“默认”,则可以通过添加具有所需值的新源和目标来实现。如果要替换存储库名称、用户、组、LDAP 设置名称、LDAP 组设置名称或权限中的子字符串,您可以提供正则表达式来匹配源中的子字符串,并在目标。默认情况下,条目添加到 migrationConfig.yaml 文件中以用连字符 (-) 替换空格字符。

更新YAML 文件中loggingunder的值以设置日志记录级别。migrator默认情况下,级别设置为 INFO。您可以将值更改为 DEBUG 以获取更多日志消息来帮助您调试问题。


convertExternalUsersGroupsToInternal如果要将所有用户和组从外部源(例如 LDAP)转换为 artifactory 中的内部用户和组,请将的值设置 为 true。

4.3编辑存储库名称[可选]

./jfrog-nexus-migrator-0.8.11.sh getConfig

使用getconfig选项运行迁移脚本后,迁移脚本会在<working directory>
/migration/nexus-migrator.文件夹内创建文件repositories.list

该repositories.list文件包含 Nexus 中的存储库列表以及要在 Artifactory 中创建的存储库的相应名称。您可以将 Artifactory 中存储库的值编辑为 Artifactory 支持的任何有效值。

您可以将目标字段的值编辑为 Artifactory 中所需的存储库名称。

4.4编辑安全实体[可选]

./jfrog-nexus-migrator-0.8.11.sh getConfig

使用getconfig选项运行迁移脚本后,迁移脚本会在<working directory>/migration/nexus-migrator文件夹内创建文件securityRegexMap.list

该securityRegexMap.list文件包含 Nexus 中的安全实体列表以及要在 Artifactory 中创建的实体的相应名称。您可以将实体的值编辑为Artifactory 支持的任何有效值。

以下示例显示了一个样本 securityRegexMap.list 文件。

users:

8TestUserName: m-8TestUserName

groups:

8test: m-8test

permissions:

8privtest: m-8privtest

您可以根据目标字段将值编辑为 Artifactory 中所需的实体名称。

4.5避免存储库迁移[可选]

./jfrog-nexus-migrator-0.8.11.sh getConfig

使用该getconfig选项运行迁移脚本后,迁移脚本会在<working directory>/migration/nexus-migrator文件夹内创建文件repositories.yaml

该repositories.yaml文件包含要迁移到 Artifactory 的存储库的详细信息。您可以从此列表中删除不想迁移的存储库。

您可以从 repositories.yaml 文件中删除仓库名称和对应的仓库块,以避免将仓库迁移到 Artifactory。

4.6避免安全实体迁移[可选]

./jfrog-nexus-migrator-0.8.11.sh getConfig

使用getconfig选项运行迁移脚本后,迁移脚本会在<working directory>/migration/nexus-migrator文件夹内创建文件security.json

该security.json文件包含要迁移到 Artifactory 的安全实体的详细信息。您可以从此列表中删除不想迁移的实体。

您可以从security.json文件中删除实体名称和对应的块,以避免将实体迁移到Artifactory。

如果您删除任何实体,请记住同时删除其引用和与其相关的任何其他部分。例如,如果您删除一个组部分,您将需要从引用它的任何权限中删除该组名称。

JSON 文件中的password字段是 base64 编码的。如果您想更改密码,请在password字段中输入密码的 base64 编码值。

以下示例显示了一个示例 security.json 文件。

{

"users": [

{

"name": "deployment",

"email": "changeme1@yourcompany.com",

"password": "UGFzc3dvcmRAMTIz",

"realm": "internal",

"groups": [

"readers"

]

},

{

"name": "testadmin",

"email": "a@gmail.com",

"password": "UGFzc3dvcmRAMTIz",

"admin": true,

"realm": "internal",

"groups": [

"readers"

]

},

{

"name": "normaluser",

"email": "test@gmail.com",

"password": "UGFzc3dvcmRAMTIz",

"realm": "internal",

"groups": [

"TestPrivRole",

"readers"

]

}

],

"groups": [

{

"name": "TestPrivRole",

"description": "TestPrivRole"

},

{

"name": "m-8test",

"description": "test"

}

],

"permissions": [

{

"name": "m-8privtest",

"includesPattern": "**",

"principals": {

"groups": {

"m-8test": [

"r",

"w",

"d",

"n",

"m"

]

}

},

"repositories": [

"test1"

]

},

{

"name": "testcustom",

"includesPattern": "**",

"principals": {},

"repositories": [

"ANY"

]

}

]

}

4.7存储库迁移状态

迁移是按顺序为每个存储库完成的。迁移脚本创建一个文件,migration/nexus-migrator /repositories.yaml用于维护每个存储库的迁移状态。该文件包含由迁移脚本处理的存储库的状态。存储库可以处于in_progress状态或completed状态。该in_progress状态表示迁移已开始,但尚未完成。该completed状态表示制品迁移成功。如果迁移尚未开始,则存储库的状态字段不存在。

相关推荐

Redis集群对比:主从复制、哨兵模式、Cluster一文看懂所有优缺点

在分布式系统中,Redis作为高性能的内存数据库,其集群方案的选择直接影响到系统的稳定性、可用性和扩展性。本文将全面对比Redis的三种主流集群方案:主从复制、哨兵模式和Cluster模式,帮助开发者...

redis的主从复制,读写分离,主从切换

当数据量变得庞大的时候,读写分离还是很有必要的。同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能。redis提供了一个master,多个sl...

# Redis 入门到精通(九)-- 主从复制(3)

#Redis入门到精通(九)--主从复制(3)##一、redis主从复制-常见问题(1)###1、伴随着redis系统的运行,master的数据量会越来越大,一旦master重启...

redis - 主从复制(Redis主从复制时序图)

1引言在上一篇文章中,我们了解了Redis两种不同的持久化方式,Redis服务器通过持久化,把Redis内存中持久化到硬盘当中,当Redis宕机时,我们重启Redis服务器时,可以由RDB文件或AO...

# Redis 入门到精通(九)-- 主从复制(2)

#Redis入门到精通(九)--主从复制(2)##一、redis主从复制--数据同步阶段注意事项###1、数据同步阶段master说明1)如果master数据量巨大,数据同步阶段应...

Redis主从复制(redis主从复制主节点挂了)

介绍Redis有两种不同的持久化方式,Redis服务器通过持久化,把Redis内存中持久化到硬盘当中,当Redis宕机时,我们重启Redis服务器时,可以由RDB文件或AOF文件恢复内存中的数据。不过...

深入解析 Redis 集群的主从复制实现方式

在互联网大厂的后端开发领域,Redis作为一款高性能的内存数据库,被广泛应用于缓存、消息队列等场景。而Redis集群中的主从复制机制,更是保障数据安全、实现读写分离以及提升系统性能的关键所在。今...

Redis主从架构详解(redis主从架构高可用如何实现)

Redis主从架构搭建Redis主节点配置创建主节点目录(/opt/redis-master),复制redis.conf到该目录下,redis.conf配置项修改#后台启动daemonizeyes...

抖音“四大包塘战神”:承包了全网的快乐

在抖音钓鱼垂类领域,"包塘战神"军团正掀起一场黑色幽默风暴。空军华、大表坑、李赔光、透心良四位创作者,以承包鱼塘为舞台,用连续翻车的钓鱼直播构筑起流量奇观。当钓鱼佬在抖音集体转型喜剧人...

ORACLE 11G RAC 安装-通过VM配置共享磁盘

简介:在自己的电脑上通过VM软件搭建Oracle11GRAC,通过修改VM的参数文件来实现磁盘共享!目标:搭建RAC环境实现:使用VMwareWorkstation8.0.0+ORACLE...

Linux操作系统安全配置(linux系统安全配置包括)

一、服务相关命令systemctlenable服务名#开机自启动systemctldisable服务名#禁用开机自启动systemctlstop服务名#停止服务systemctls...

关于Linux性能调优中网络I/O的一些笔记

写在前面和小伙伴分享一些Linux网络优化的笔记,内容很浅,可以用作入门博文内容结合《Linux性能优化》读书笔记整理涉及内容包括常用的优化工具(mii-tool,ethtool,ifconfig,i...

从 Sonatype Nexus Repository Manager 迁移到 Artifactory

1.Nexus1.1下载下载链接:https://help.sonatype.com/repomanager3/product-information/download/download-archiv...

Ubuntu20安装zabbix5.0企业监控系统亲测教程

前言示例主机:zabbix10.0.100.10,将安装在UbuntuServer上教程说明:因使用官方教程无法安装成功,所以本教程与官方教程有所不同安装前提:已安装UbuntuServer2...

Linux内核设计与实现—进程管理(linux内核程序设计)

进程进程就是处于执行期的程序(目标码存放在某种存储介质上)。进并不仅仅局限于一段可执行程序代码(Unix称其为代码段,textsection)。通常进程还要包含其他资源,像打开的文件,挂起的信号,...