Solucionando error en la creación de la base de datos de NNMi 9

La situación es la siguiente: NNMi 9.10 instalado en cuatro máquinas distintas de un cliente, usando exactamente la misma imagen de Windows 2008 R2 en todas ellas.

La instalación transcurre sin incidencias hasta que llegamos a la parte final de los post-install scripts que, entre otras cosas, crean la base de datos embebida PostgreSQL.

Es en este momento cuando en dos de las cuatro máquinas aparece esto:

Probé de todo: sacar la máquina de dominio, reinstalar sin entrar en dominio para evitar posibles GPOs, revisar los permisos de LOCAL SERVICE en las unidades… no fui capaz de encontrar por ninguna parte la razón por la que en estas dos máquinas concretas la instalación fallaba en este punto, pero a pesar de eso todo tiene una solución.

Primero, ¿por qué está fallando?. El motivo concreto es un archivo de la instalación de PostgreSQL que se queda con permisos incorrectos y no es accesible para el usuario LOCAL SERVICE con el que corre la base de datos. El archivo en cuestión es postgresql.conf en %nnmdatadir%\shared\nnm\databases\postgres\.

¿Por qué pasa esto? Como decía antes, ni idea.

El primer paso para arreglarlo es editar las propiedades del archivo y asociar al usuario LOCAL SERVICE como creador, con control total sobre él.

El segundo paso es regenerar la base de datos. Para esto debemos partir de una instalación que ha fallado en este punto pero de la que no hemos hecho roll-back (si reinstalamos los permisos volverán a asignarse incorrectamente y estaremos en las mismas, así que cuando falle pulsad en “quit” y no en “rollback”).

Vamos a %nnminstalldir%\nonOV\Postgres\bin y ejecutamos los siguientes comandos para crear un usuario y una base de datos:

createuser.exe -s -d -r -U postgres nnmuser
createdb.exe -E UTF8 -O nnmuser -U postgres nnm

Si nos pide un password en estos pasos, el password por defecto es “nnmP0stgr3S”.

Para asegurarnos de que la base de datos se crea correctamente vamos a usar un script de NNMi que nos hace un reset de la misma. Entramos en %nnminstalldir%\bin y ejecutamos:

nnmresetembdb.ovpl

Levantamos los servicios:

ovstart -c

Y todo debería estar ya corriendo correctamente.

Aunque las instrucciones están basadas en Windows (que es la plataforma usada en este cliente en particular) obviamente funcionarán igualmente en el resto de sistemas operativos soportados por NNMi, simplemente cambiando las rutas por las propias de esas instalaciones (suponiendo que el error también ocurra en esas plataformas, cosa que hasta el momento no he visto que haya pasado nunca).