Blog IT

ERROR: Client is not authenticated to VMware Inventory Service

Inventory1

Al loguear en el Web client nos aparece el error: Client is not authenticated to VMware Inventory Service – https://Vcenter.lagonzalez.local:10443

Inventory2

Al realizar búsquedas nos da el siguiente error: Login to the query service failed. The server could not interpret the communication from the client. (The remote server returned error: (403) Forbidden.)

Existen varios problemas que puedan afectar al inventario del Vcenter. Puede ser debido a falta de permisos, una BD corrupta , problemas de resolución de nombres, fallos en los certificados, desconexiones entre los punteros de cada servicio…

Generalmente los problemas suelen aparecer tras migrar de versiones 5.11 a 5.5.

En esta entrada vamos a intentar identificar los problemas y aplicar las diferentes soluciones.

Si la versión de Vcenter instalada no es superior a la 5.5.0b puede que tu problema sea debido al archivo ds.jar del propio Vcenter. Tendrás que descargarte un zip y reemplazarlo por el existente.

Inventory3

También tendrás que crear la identidad Local Os. Os remito al link del KB de Vmware para que podáis descargar el zip con el archivo y sigáis las instrucciones: Aquí

Si nuestra versión es superior, lo primero que haremos es comprobar que no sea un problema de resolución de nombres.

Inventory4a

Para ello, nos logearemos en el Vcenter e iremos a Administration, Vcenter Server Settings,

Inventory5

Advance Settings. Comprobaremos las siguiente entradas.

VirtualCenter.VimApiUrl: https://NombreFQDNdelVcenter:443/sdk

VirtualCenter.VimWebServicesUrl: https://NombreFQDNdelVcenter:8443/vws

El nombre del servidor tiene que aparecer con el nombre FQDN. Si aparece el nombre del servidor solamente lo corregimos.

En caso de que tengamos bien los nombres comprobaremos los certificados y comenzaremos a registrar de nuevo todos los servicios del Vcenter.

Tenemos que verificar que el certificado y clave privada del Vcenter existe y también el certificado de la CA. Haremos un backup de los mismos (toda la carpeta). Las rutas son:

Inventory6

C:\ProgramData\VMware\SSL\Ca_certificates.crt

Este es el certificado de la CA al que hace referencia el vpxd.cfg, el cual es utilizado por el servicio de Vcenter para arrancar.

Inventory7

C:\ProgramData\VMware\VMware VirtualCenter\SSL\rui.crt

C:\ProgramData\VMware\VMware VirtualCenter\SSL\rui.key

Certificado del Vcenter y su clave privada.

Verificados los certificados y copiados en otra ubicación comenzaremos con el registro de los servicios del Vcenter. Llegados a este punto os recomiendo hacer un backup de la máquina o un snapshot.

A tener en cuenta antes de empezar:

  • Si tenéis vinculado el Vcenter con algún otro servidor de Vcenter, es necesario desvincularlo primero. Como desvincularlo Aquí
  • Los scripts están configurados para las rutas de instalación por defecto del producto. Si las habéis cambiado tendréis que modificar con vuestras rutas cada uno de los archivos .bat que vamos a lanzar.
  • Los registros se harán contra la misma instancia de SSO.
  • Las tareas son sobre un Vcenter 5.5. En caso de que tengáis un 5.1 todo será igual excepto la cuenta con la que ejecutáis los comandos que será “admin@System-Domain” en vez de “administrator@vSphere.local”
  • Esto no sirve para VCSA

Empezamos!

El primer paso será volver a registrar el Vcenter Inventory Service con el Single Sign-On. Como lo vamos a hacer sobre la misma instancia de SSO, primero tendremos que eliminar la cuenta del Vcenter Inventory Service .

Inventory8

Para ello nos logueamos en el Web client como administrator@vsphere.local,

Inventory9

Una vez dentro nos vamos a Administration, SSO Users and groups, application Users y eliminamos la cuenta de Inventory Service. Esto es necesario porque sino, al volver a registrarla nos dará error porque ya existe.

Eliminada la cuenta, abriremos un Command y nos iremos a la ruta C:\Program Files\VMware\Infrastructure\Inventory Service\scripts

Y lanzaremos el siguiente script:

is-change-sso.bat https://NombreFQDNdelVcenter:7444/lookupservice/sdk “administrator@vSphere.local” “TuPassword”

Detenemos y levantamos el servicio de Inventario.

Inventory10

net stop vimQueryService
net start vimQueryService

Ya hemos vuelto a registrar el Vcenter Inventory Service contra el Single Sign-On.

Ahora volveremos a registrar el Vcenter con el Inventory Service.

Para ello volvemos a abrir un command y nos vamos a la ruta C:\Program Files\VMware\Infrastructure\VirtualCenter Server\isregtool

Y lanzaremos el siguiente script:

register-is.bat https://NombreFQDNdelVcenter:443/sdk https://NombreFQDNdelVcenter:10443 https://NombreFQDNdelVcenter:7444/lookupservice/sdk

Reiniciamos el Vcenter.

Llegados a este punto la configuración URL del Inventory Service estará actualizada y el Vcenter se habrá registrado de nuevo contra el Inventory Service.

Nos logueamos en el cliente web y el error debería de haber desaparecido y el inventario hacer búsquedas sin problema.

En caso de que no sea así, podríamos intentar a volver a hacer los registros contra otra instancia de SSO o restaurar la BD de un backup.