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

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

相关版本:这个信息属于Artifactory版本5.10到最新的6。X而且x射线版本1.12至最新2。X

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

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

[示例]mongodb -archive = mongodb。Archive -db x射线

从x射线中删除Artifactory“二进制管理器”的步骤

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

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

[RPM/Debian安装示例命令]

mongo -u x射线——authenticationDatabase x射线——authenticationMechanism sra - sha -1 -p密码

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内部管理用户'art-gcp_xray' to Access

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

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

5.列出你的JFrog Access configuration的配置:

db.configuration.find ()

6.删除accessConfig行:

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

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

7.重新启动x光

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

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

在遵循这些步骤之后,Artifactory和Xray应该无缝连接重新开始工作。如果没有,你就需要这样做恢复备份MongoDB配置:

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