前言
由于 JFrog Artifactory 在业界得到了普遍的应用,并且 Artifactory 可以完全替代 Nexus 作为 Maven 私服,所以JFrog 提供了自动化的迁移工具 nexus2artifactory,目的是帮现有的 Nexus 用户一键迁移到 Artifactory,从而让用户得到更好的Maven 仓库。
目前该工具支持仓库类型: local(hosted), remote(proxy), and virtual (group)repositories (注意: Bower类型仓库目前不支持)。
迁移后,存储在local(hosted)仓库的文件会被迁移,在remote仓库缓存的文件暂时不会被迁移。
可以同时迁移: users, groups(roles), and permissions (privileges), LDAP configurations
此工具需要运行在Nexus服务器,并需要有python环境
1. 下载并运行迁移工具:
下载地址: https://github.com/jfrog/nexus2artifactory
需要下载到Nexus服务器
运行工具:
./NexusToArtifactory.py
可以看到启动界面:
![1.png](https://static.studygolang.com/200422/bca506439fcdd27fbdba155ad3a9634e.png)
注意: 每项功能都有相应的快捷键(下同)
i: 初始化配置
r: 配置要迁移仓库信息
u: 配置要迁移的用户信息
s: 保存配置
l: 加载已保存的配置
v: 校验当前配置
x: 运行迁移任务
h: 帮助
q: 退出
2. 初始化配置
按快捷键 “r”, 进入初始化界面
![2.png](https://static.studygolang.com/200422/d9af0de1584ea8c2c0b20b2cfeabb97a.png)
2.1. 配置Nexus信息
按快捷键 “n”, 在提示符下输入Nexus数据目录的地址: /data/nexus-work ![4.png](https://static.studygolang.com/200422/92addb9acecd1e84eeadc3120ad5b7da.png)
![3.png](https://static.studygolang.com/200422/64e2060cc43500396bd9f2dc6fb0e019.png)
注意: 如果是Nexus3,会需要继续输入Nexus的地址,以及用户名和密码,如下:
![4.png](https://static.studygolang.com/200422/92addb9acecd1e84eeadc3120ad5b7da.png)
2.2. 配置Artifactory信息
填写Artifactory的相应信息,如下:
![5.png](https://static.studygolang.com/200422/721866b6195eccd98c64e6028a951ece.png)
填写完毕以后按快捷键 ”q” 返回到主界面
3. 配置要迁移的仓库信息
在主界面按快捷键”r”,进入到仓库配置界面,如下
![6.png](https://static.studygolang.com/200422/def3127fa72208e3c28f6fc033a977d8.png)
按左(<-)右(->)方向键可以翻页查看仓库列表,后面带”+”号的是会被迁移的仓库,如果不想迁移可以按前面的数字标号,去掉”+”号。
编辑完成以后按快捷键”q”,退回主界面。
4. 配置要迁移的用户信息
在主界面按快捷键”u”,进入到用户配置界面,如下
![7.png](https://static.studygolang.com/200422/3ea02727bfbfa424bdbefd0e23f96a7d.png)
按快捷键”u”,进入到用户列表界面,如下
![8.png](https://static.studygolang.com/200422/a398c92903b2b40b9b9becdf582a740f.png)
按用户名前面的数字键,选择和放弃迁移用户,配置完成以后按快捷键”q”返回上一级界面。
按快捷键”g”,进入用户组的配置,配置方式同上
![9.png](https://static.studygolang.com/200422/2e25bd30a71ed37b661e58b52751acf1.png)
配置完成以后按快捷”q”,返回到上一级菜单
按快捷键”p”和”l”,分别进入权限和LDAP配置界面,操作方式同上 ![13.png](https://static.studygolang.com/200422/1586f7bf587c97b76e7ab1e91d4440d9.png)
![10.png](https://static.studygolang.com/200422/08f29910e0a19c8ee59f5584c37e9898.png)
![11.png](https://static.studygolang.com/200422/e5df4433ec3369494a47b3a843c411be.png)
配置完成以后按”q”键,返回到主界面
5. 保存配置信息
在主界面按快捷键”s”,保存当前配置,文件名: 20190906.json
如下:
![12.png](https://static.studygolang.com/200422/67ad2aa0dc67f31959dc27dac720ed68.png)
6. 执行迁移命令
在主界面按快捷键”x”,执行当前迁移任务,可以看到执行的进度:13
![13.png](https://static.studygolang.com/200422/1586f7bf587c97b76e7ab1e91d4440d9.png)
Artifactory会自动创建仓库,并迁移Nexus文件。
“Total Progress” 进度为100%时,迁移任务就已经完成了。
7. 定时执行迁移任务
利用crontab 定时调用迁移脚本:
命令运行参数:
/pathto/NexusToArtifactory.py -n -q \
-f /pathto/20190906.json \
-l /pathto/nexus2artifactory.log
-n 非交互模式
-q 静默模式,不打印日志
-f 指定保存的配置文件
-l 指定日志文件
7.1. 配置定时任务
可以设置每天凌晨2点自动运行迁移任务
编辑crontab:
crontab –e
填入以下内容(只有一行),保存即可:
0 2 * * * /pathto/NexusToArtifactory.py -n -q -f /pathto/20190906.json -l /pathto/nexus2artifactory.log
总结
自动化迁移工具能够迁移制品,用户,权限等重要信息,有了它之后,大家就能够尽快的使用 Artifactory ,并且享受 Artifactory 的更多企业级功能了!
有疑问加站长微信联系(非本文作者)