Artifactory制品库迁移方案

方法一:备份方式

        Artifactory 支持两个级别的数据导入和导出:
  • System:Artifactory 可以导出和导入整个 Artifactory 服务器:配置、安全信息、存储的数据和元数据。使用的格式与系统备份格式相同。这在手动运行备份以及迁移和恢复完整的 Artifactory 实例时非常有用(作为使用数据库级备份和恢复的替代方法)。
系统导出导入
在源主机Artifactory|Admin|Import&Export中,您可以通过选择导出路径,点击Export
服务器上的导入文件应该由运行 Artifactory 进程的同一用户读取和拥有,这一点非常重要。
在目标主机的Artifactory|Administration|Artifactory | Import&Export | System中,使用Improt System菜单导入它
导入/导出操作的源/目标是Artifactory 服务器本身上的文件夹(不推荐 Zip  存档 ,  因为 zip 存档导入或导出大量数据可能非常耗时)。您可以使用 Artifactory 中内置的服务器端浏览来选择服务器端源/目标文件夹:

检查

导入或导出大量数据可能非常耗时。在导入/导出操作期间,您可以离开页面浏览并采样系统日志以监控进度。
最后访问页面各项功能,验证功能正常:
通过
检查项
备注
  • 通过
节点启动成功,日志正常
  • 通过
登入正常
  • 通过
其他节点健康状态正常
  • 通过
页面查看制品数据正常
  • 通过
页面下载制品正常

方法二:复制方式

本方式是以最少的停机时间迁移 Artifactory。参考( 本文)。
此方法通过一些巧妙的脚本和 Artifactory REST API 来解决大量重复的推送复制设置。您还需要下载 最新的 JFrog CLI利用其复制配置系统。
在新的 Artifactory 上创建存储库和设置
即使是大规模的,也可以使用系统导出将 Artifactory 配置从旧 Artifactory 导入到新 Artifactory。在大规模(超过 100 万个工件)下,默认的完整系统导出需要很长时间才能完成。我们只需要在另一端创建存储库。
在源ArtifactoryAdminImport&Export中,您可以通过选中两个排除复选框来排除配置和用户以外的所有内容。这将保存 旧(源)Artifactory 的配置和权限的几乎为空的备份;它应该很快完成。
注意:如果之后出现任何问题,您应该重新加载此导出的配置以撤消复制设置
说明:
Exclude Content : 设置后,二进制文件和元数据将从导出中排除。仅导出配置文件。
Exclude Metadata: 设置后,存储库元数据将从导入 / 导出中排除。
接下来,将导出复制到新的 Artifactory 中。
在目标Artifactory|Administration|Artifactory | Import&Export | System中,使用“导入系统”菜单导入它以自动创建所有目标存储库:
如果在导入时选中了两个复选框,内容和原数据都不会被删除,这样以后可以再次导入以更新存储库列表和权限。如果复制设置不正确,这也是您可以恢复的方法。
说明:
Exclude Content : 设置后,存储库二进制文件将从导入中排除。
Exclude Metadata: 设置后,存储库元数据将从导入/导出中排除。

   

步骤 1:获取存储库名称

手动设置 Push Replications 需要对每个仓库进行设置。这里为手动设置的示例:
第一步:找到本地仓库
第二步:点击仓库
第三步:点击Replications,点击New添加
第四步:输入要推送到的目标Artifactory URL、Username、Password,并点击Test测试,Save保存。
第五步:点击按钮,推送。
由上可见,面对非常多的仓库时这种方法就不适用了。我们将使用JFrog Cli 简化上列步骤。
下载 最新的 JFrog CLI利用其复制配置系统
建议您创建一个项目文件夹来保存我们即将创建的模板文件:
第一,获取存储库列表来自旧(源)Artifactory。下面的命令仅保存存储库密钥,即存储库的名称。密钥是我们设置复制所需的全部。此命令将保存我们将在下一步中使用的“repositories.list”文件:
[预期输出]
通过“repositories.list”文件,我们实际上已经获得了在任何地方设置复制所需的所有信息。下一步是为JFrog CLI 创建正确的模板文件。

   

步骤 2:创建复制设置

JFrog CLI 提供 复制创建 动作
A] 首先,
具有“源”和“目标”Artifactories:
B] 生成复制模板配置文件。下面的循环将读取“repositories.list”文件的每一行,并根据键创建一个模板文件:
# JFrog CLI 使用名称 “target” 并在配置复制时填写正确的 URL
c cat repositories.list |  while read line
do  
   #Variable setup
   #Get the repository key, remove "key": from the JSON
   REPO=$( echo $line | cut -d ':' -f 2)
   REPO_FILENAME=$( echo ${REPO%??} | cut -c 2-) #Get a good looking filename
   #Insert the static default parameters
   echo '{ "enabled": "true","cronExp":"0 0 12 * * ?",' > $REPO_FILENAME -template.json
   #Insert the repository Key
   echo '"repoKey": ' $REPO >> $REPO_FILENAME -template.json
  #Insert the remaining parameters, note we're replicating to the same repository name
   echo '"serverId": "target", "targetRepoKey": ' $REPO ' "enableEventReplication":"true" }' >> $REPO_FILENAME -template.json
done
[预期的 JSON 文件内容]
循环结束后,
请检查生成的文件
它们看起来都应该像上面的示例图像。在我们将模板大量部署到源之前仔细检查模板非常重要,以防止将错误配置的设置部署到旧的 Artifactory 中。
C]运行“
" 在每个 JSON 文件上执行 CLI 命令,此脚本将为您执行此操作:
jfrog 配置使用源
ls  | while  read line
do
     echo “jf rt replication-create $line ”
     jf rt replication-create $line 
done
这会将每个模板推送到源 Artifactory,最后所有 Artifactory 的本地存储库都将配置为推送到目标:
此操作需要两个artifactory有不同的license才可完成复制。

步骤 3:正式迁移

如果前面的步骤成功完成,随着时间的推移,Production Artifactory 会将其所有数据推送到 Target,并且两者将拥有相同的信息。您可以通过单击 UI 中的“立即运行”按钮来启动迁移。
最后访问页面各项功能,验证功能正常:
通过
检查项
备注
  • 通过
节点启动成功,日志正常
  • 通过
登入正常
  • 通过
其他节点健康状态正常
  • 通过
页面查看制品数据正常
  • 通过
页面下载制品正常
查看日志,是否正常启动
tail -f /opt/jfrog/artifactory/var/log/console.log
用户登录是否正常,用户权限是否迁移
查看节点状态
查看仓库制品信息是否正确显示
下载制品是否正常

故障排除问题

如果上述步骤中使用的复制信息不正确,Source Artifactory 将以大量错误的复制设置告终。恢复应用程序的最快方法是从配置描述符中删除复制设置。
推荐的方法是使用 REST API 来重新部署“artifactory.config.xml”
你已经保存在空系统导出在此过程开始时捕获。
要使用的文件位于导出文件夹中,例如20211215.195625/artifactory.config.xml.
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值