如何重置x射线<>人工连接而不丢失扫描结果

帕特里克·罗素
2023-01-22 11:09

相关版本:此信息与…有关人工版本5.10到最新的6。XXray版本1.12到最新的2。X

有时你需要重置Artifactory <> Xray连接(例如,当你需要重置你的管理凭据,更改你的Artifactory URL,或重置Xray使用的令牌)。本文解释了如何在不擦除Artifactory扫描历史的情况下这样做,只要原始Artifactory可用。

x射线使用蒙戈数据库来管理x射线服务器的配置。它包含一个条目,用于连接Artifactory。此条目包含Artifactory URL、管理凭据和二进制管理器ID。保存最后一项是保持扫描结果完整的关键。由于此过程涉及对数据库进行直接更改,因此请确保备份您的MongoDB在继续之前:

[示例]mongodb -archive = mongodb。Archive -db xray

从Xray中删除人工“二进制管理器”的步骤

1.登录Mongo数据库。当您的MongoDB安装时,您可以使用CLI登录,或者在MongoDB容器中执行“docker exec”。

请注意:自x光2.8.9, MongoDB的密码是随机的,不再是字面上的。密码”。相反,有一个MongoDB_Admin_pass.txt文件中/根目录或用户的主文件夹中。您可以使用以下密码登录:

[RPM/Debian安装示例命令]

mongo -u xray——authenticationDatabase xray——authenticationMechanism sram - sha -1 -p password

2.打开x射线数据库:

使用x光

3.在"binary_managers表中,应该有一行包含Artifactory信息:

db.binary_managers.find ({})

4.使用其ID删除二进制管理器表行-注意这里使用的“bin_mgr_id”!

db.binary_managers。移除({"bin_mgr_id": "art-gcp"})

如果被重置的Artifactory实例是Xray的身份验证提供者,您还需要执行这些步骤。否则,在尝试第8步时,你会看到这个错误:
[2019/01/25 21:09:22 UTC] [error] (www.si-fil.com/xray/handlers/binary_managers.BinManagerHandler.CreateBinMgrConfig:92) Failed to create xray config for Artifactory: Failed to import binary manager internal admin user 'art-gcp_xray' to Access

有一个额外的配置与已删除的binary_managers表行绑定。如果在即将到来的Xray重启发生时它仍然存在,则将发生错误并且Xray将无法启动。

如果Artifactory是Xray的身份验证提供者,请在退出之前执行这些额外的MongoDB步骤(如果Xray不使用Artifactory作为身份验证提供者,请跳过这些步骤):

5.列出JFrog访问配置的配置:

db.configuration.find ()

6.删除accessConfig行:

db.configuration。remove({"config_id": "accessConfig"})

无论Xray是否使用Artifactory作为身份验证提供者,执行最后两个步骤:

7.重新启动x光

8.通过UI重新添加Artifactory到Xray,就好像这是第一次你创造了这种联系。更改或更新任何需要更新的信息,但有一个例外。您需要对Artifactory使用与之前相同的名称。名称应该精确匹配bin_mgr_id字段,是在MongoDB。

x射线使用bin_mgr_id跟踪与特定Artifactory实例相关联的扫描结果。只要bin_mgr_id与之前匹配,就会找到并使用旧的表行和扫描结果。

遵循这些步骤后,人工和x射线应该无缝连接并重新开始运作。如果没有,你需要恢复备份MongoDB配置:

[RPM / Debian示例-只有在出现问题时才做]
mongorestore -u xray -p password -authenticationDatabase xray——archive= mongodb . exe——db xray -v