由于 jumpserver 中删除节点只能一部分一部分的删除,无法进行大量批量删除,分析后发现 jumpserver 中节点相关信息主要存储在以下数据表中:
assets_authbook
assets_asset_nodes
assets_historicalauthbook
ops_adhoc_hosts
ops_commandexecution_hosts
perms_assetpermission_assets
assets_asset
因此,若想批量删除节点,则需要删除这些节点中的对应节点的数据。
首先,使用 SQL 命令拼组删除命令(除 assets_asset
表):
SELECT
CONCAT(
'delete from assets_asset_nodes where asset_id =\'',
`id`,
'\';'
),
CONCAT(
'delete from ops_commandexecution_hosts where asset_id =\'',
`id`,
'\';'
),
CONCAT(
'delete from assets_authbook where asset_id =\'',
`id`,
'\';'
),
CONCAT(
'delete from assets_asset_nodes where asset_id =\'',
`id`,
'\';'
),
CONCAT(
'delete from assets_historicalauthbook where asset_id =\'',
`id`,
'\';'
),
CONCAT(
'delete from ops_adhoc_hosts where asset_id =\'',
`id`,
'\';'
),
CONCAT(
'delete from perms_assetpermission_assets where asset_id =\'',
`id`,
'\';'
)
FROM
assets_asset
WHERE
ip like '%192.168.199%'
然后执行得到的 SQL
语句。
最后再删除 assets_asset
表中的数据。
DELETE FROM
assets_asset
WHERE
ip LIKE '%192.168.199%'
最后发现 WEB 终端更新的服务器数量还是原来的数量,点刷新没有作用,此时需要修改 assets_node
表中的参数使数值变化。
此外,还可以使用 JumpServer 服务 API 执行删除节点操作,详见JumpServer API。
参考: