viernes, 12 de marzo de 2010

Despiste 9: Cambiar de usuario en los servicios de vCenter

Este quizá sea uno de los despistes más clásicos, típicos y que dan más coraje de sufrir, sobre todo cuando es la tercera o cuarta vez que le ocurre a uno. A ver, os pongo en situación: uno se pone a hacer el despliegue de una nueva plataforma de vSphere (migración o no) con toda la ilusión del mundo, instala su servidor de base de datos, prepara la base de datos, monta el que va a ser el servidor de vCenter, configura su DSN, instala el software correspondiente (vCenter, Update Manager, Guied Consolidation, etc...), se instala su vSphere client, añade sus hosts y hace las primeras configuraciones de prueba y... Voilá!! todo perfecto, una maravilla, una pasada... (aquí van todos los calificativos que se os ocurran).

En este punto uno reflexiona y dice: "vale, lo he instalado todo con un usuario que es administrador del dominio y esto al de seguridad (o sea YO) no le va a gustar nada, así que vamos a securizarlo un poco" . Activamos el cortafuegos, autorizamos los puertos correspondientes (80, 443, 389,636, 902,903, 8084, 9084 y 9087), revisamos las cuentas de servicios y nos encontramos con la desagradable "sorpresa" (no es tan sorpresa porque el programa de instalación ya nos lo advirtió) de que la cuenta de servicio asociada a los servicios VMware VirtualCenter Server y VMware VirtualCenter Management Webservices tiene asociada la cuenta de administrador con la que hice la instalación (mal royo). Como administradores preocupados por la seguridad vamos y cambiamos la cuenta de servicio por una cuenta sin privilegios que tenemos en el dominio para este tipo de cositas. Vamos a iniciar los servicios de nuevo y... yastá, yalaliaopardadiosmiodemivida!!!! el servicio de VMware VirtualCenter Server no arranca dando un simpático mensajito de error del tipo:

Failed to init tableDef: Column VER_ID does not exist in table VPX_VERSION. Database version may be incompatible.
El problema está en que la cuenta que está autorizada en el servidor SQL Server es la de la instalación original, con lo cual tendremos que toquetear la base de datos. El procedimiento no es original mío, lo he sacado de las communities de vmware, así que podeis ver el post original aquí (en Inglés).

Para los que no queráis traducir, básicamente los pasos a seguir son los siguientes:


  1. Abrir el SQL Server Management Studio
  2. Buscamos la base de datos de VMware. Si hemos seguido al dedillo el manual de instalación esta será VCDB
  3. Navegamos por el árbol de la base de datos hasta VCDB->Seguridad->Esquemas->db_owner
  4. Abrimos las propiedades del esquema y le cambiamos el valor del parámetro Propietario del esquema del valor original <vcuser>(el de la instalación inicial) a dbo
  5. Eliminamos el usuario <vcuser> de la base de datos. Eso lo podemos encontrar en VCDB->Seguridad->Usuarios. Cuidado de no eliminar el login del servidor con el que se mapea ese usuario.
  6. Abrimos una nueva ventana de consulta SQL
  7. Lanzamos la siguiente consulta, cambiando <vclogin> por el nombre del nuevo usuario de la cuenta de servicio que le hemos asociado a los servicios de VMware:
    1. EXEC sp_changedbowner @loginame = ‘<vclogin>’, @map = ‘true’ 
  8. Iniciamos los servicios afectados en el servidor de vCenter
  9. FIN
Espero que este POST os ahorre los dos días de dolores de cabeza que me ha llevado a mi solucionar el "problemita"

No hay comentarios:

Publicar un comentario