Eliminar manualmente un host del Vcenter

Recientemente he tenido un problema al intentar eliminar un host del vcenter al que previamente le había cambiado los permisos.

Primero intente eliminar el host desde el PowerCli http://www.vmware.com/support/developer/PowerCLI/index.html ejecutando:

Set-ExecutionPolicy RemoteSigned
Connect-VIServer -Server <ip o nombre del vcenter>  -User <user_name> -Password <password>
Remove-VMHost host.red -Confirm:$false

Como había cambiado los permisos me dio un error por falta de ellos para eliminar la máquina. Ante ello sólo quedaba eliminar el host manualmente de la base de datos del vcenter

Para ello hay que ejecutar los siguientes pasos:

  1. Parar el servicio Vmware VirtualCenter
  2. Abrir el SQL Manager y ejecutar lo siguiente:
USE vim_vcdb
SELECT ID FROM VPX_ENTITY WHERE name ='host.red.local'; 

Nos da un identificador que será el usaremos para los siguientes pasos

DELETE FROM vpx_ds_assignment WHERE entity_id IN (SELECT id FROM vpx_vm WHERE host_id = 3761);
 
DELETE FROM vpx_nw_assignment WHERE entity_id IN (SELECT id FROM vpx_vm WHERE host_id = 3761);

Comprobamos que máquinas virtuales están asociadas a dichos host

SELECT id FROM vpx_vm WHERE host_id = 3761;
y apuntamos en un papel su identificador que usaremos más adelante
DELETE FROM vpx_vm WHERE host_id = 3761;

Borramos las máquinas virtuales asociadas a este host que habiamos anotado previamente

DELETE FROM vpx_entity WHERE id IN (724,717,4837,5259);
DELETE FROM vpx_host WHERE id = 3761;
DELETE FROM vpx_entity WHERE id = 3761;
DELETE FROM vpx_entity WHERE parent_id = 3761;
DELETE FROM vpx_entity WHERE id = 3761;

Reiniciamos el servicio VMware Vcenter

Referencias