MISSOIN CONTROL:如何解决添加新JPD时“此JPD已被注册为' HOME '”错误
主题
如何解决在平台部署中添加新的JPD时的错误(7.38中的平台管理)。X及以上)页。
影响版本
Artifactory 7。xand Mission Control 4.x
描述
通过任务控制,您可以在平台的中央仪表板中根据地理位置管理、监控和获得所有已安装的JFrog平台部署(JPDs)和已安装的服务的可见性。
若要从其他位置添加jpd,可以转到平台部署(7.38中的平台管理。xand above) page under the Administration module.
当在不同的区域部署多个Artifactory实例(JPD)时,您可能已经使用了迁移方法从源(HOME)实例导出Artifactory配置和数据,并将其导入到目标实例,这意味着目标实例是源实例的重复实例。
这将没有任何问题。但是,当您尝试在平台部署(平台管理)页面中将目标JPD添加到源(HOME) JPD时,可能会看到以下错误消息。
当将源Artifactory实例迁移到新部署的目标Artifactory实例时,它将用源实例的服务ID替换每个微服务(例如JFRT、JFAC、JFMD等)的现有服务ID。Artifactory使用这个服务ID来区分一个JPD和另一个JPD。
为了克服这个问题,您可以重置目标实例的服务ID。
在从源实例迁移之前,需要从目标实例备份当前服务id。执行以下命令获取每个微服务的服务id列表,并保存“jfrt@
现有服务id
Curl -s localhost:8082/router/api/v1/system/health
例子
:“service_id jfac@12345678901234567890123abc”,
:“service_id jfevt@12345678901234567890123abc”,
:“service_id jffe@000”,
:“service_id jfmd@12345678901234567890123def”,
:“service_id jfob@12345678901234567890123abc”,
:“service_id jfrt@12345678901234567890123ghi”,
迁移完成后,运行同样的curl命令来检查服务id,您将看到它们已被源实例的服务id替换。
克隆的服务id
Curl -s localhost:8082/router/api/v1/system/health* jfmd服务ID可能会被替换,也可能不会被替换,但是我们假设它在这里已经被替换了。
例子
:“service_id jfac@12345678901234567890123jkl”,
:“service_id jfevt@12345678901234567890123jkl”,
:“service_id jffe@000”,
:“service_id jfmd@12345678901234567890123mno”,
:“service_id jfob@12345678901234567890123jkl”,
:“service_id jfrt@12345678901234567890123pqr”,
要重置目标实例上的服务id,请执行以下步骤。确保在继续之前对Artifactory实例和数据库进行备份。
1.2 .执行以下命令,导出Access配置。
curl -u admin -vv -XPOST http://localhost:8082/access/api/v1/system/backup/exportcurl -u admin -vv -XPOST http://localhost:8082/access/api/v1/system/backup/export*从7.12.0及以上版本开始:需要一个有效的管理范围令牌。API不再支持基本身份验证。curl -H "授权:不记名TOKEN" -vv -XPOST http://localhost:8082/access/api/v1/system/backup/export这将创建access.backup.
2.获取现有服务ID的保存列表,并将“jfrt”服务ID添加到以下位置。echo "jfrt@12345678901234567890123ghi" > $JFROG_HOME/artifactory/var/etc/artifactory/security/access/keys/service_id
3.重命名Access导出文件为Access .bootstrap.json,并将其复制到$JFROG_HOME/artifactory/var/etc/ Access目录下。确保该文件属于同一个Artifactory用户/组,并具有600权限。cp JFROG_HOME美元/ artifactory / var /备份/访问/ access.backup。(时间戳)。json JFROG_HOME美元/ artifactory / var / etc /访问/ access.bootstrap.json
chown
chmod 600 $JFROG_HOME/artifactory/var/etc/access/access.bootstrap.json
4.在access.bootstrap.json文件中,用现有的服务ID替换当前的服务ID。例如,Sed -i 's/jfrt@12345678901234567890123pqr/jfrt@12345678901234567890123ghi/g' access.bootstrap.json
5.重启Artifactory。
6.导入访问配置数据。curl -u admin -vv -XPOST http://localhost:8082/access/api/v1/system/backup/import*从7.12.0及以上版本开始:需要一个有效的管理范围令牌。API不再支持基本身份验证。curl -H "授权:不记名TOKEN" -vv -XPOST http://localhost:8082/access/api/v1/system/backup/import
7.访问数据库。在本指南中,我们将使用PostgreSQL数据库。
8.从“access_configs”表和“md_configs”表中删除以下条目。DELETE FROM access_configs WHERE config_name='serviceId';
DELETE FROM md_configs WHERE config_name='service_id';
9.重启Artifactory。
现在,我们可以看到目标JPD可以添加到平台部署(平台管理)页面中。
