DC Agents

Actualización de los DC Agents en una infraestructura con múltiples domain controllers

Frecuentemente me encuentro con la tarea de hacer upgrade de la infraestructura de FSSO de un cliente. Actualizar los DC Agents en uno o dos domain controllers en forma manual no ha sido problema, pero cuando me encontré con un cliente con 30 me dije “No, definitivamente no voy a actualizar uno por uno a mano”.

El problema

La primera prueba fue con el Collector Agent, y ahí me encontré (al menos hasta la versión 5.0.0.271) que no hay forma de actualización automática, solo instalación automática. Podemos desinstalar, reiniciar, instalar el nuevo y reiniciar.

La opción obvia hasta el momento es iniciar sesión en la consola -RDP o local-, y ejecutar el instalador directamente. Es un reinicio menos, pero sigue siendo un procedimiento manual.

Como dije, cuando la infraestructura es chica no hay problema, pero al ser grande es un proceso tedioso y puedo cometer un error. Para mi 30 ya es mucho, pero alguien que lea esto puede decir “¿y te quejás solo por 30?”.

Laboratorio

Armé un Windows Server 2016 promovido a DC de un dominio interno, le instalé el Collector Agent versión 5.0.0.254 y DC Agent configurado con una ignore list de prueba.

El upgrade fue a la versión 5.0.0.271. Después de realizado, verifiqué que se mantuvo la configuración del DC Agent.

Instaladores y herramientas

Inicien sesión con credenciales de Domain Admin en un equipo, bajen los instaladores del Collector Agent y el DC Agent desde la página de Fortinet, y en el caso de este último usen la versión en .EXE, no en .MSI. Con el MSI no funcionó en mi laboratorio (tal vez algún developer pueda decirnos que tiene de diferente). En el sitio SysInternals, bajen el psexec (https://docs.microsoft.com/en-us/sysinternals/downloads/psexec). Si usan algún producto como System Center pueden omitir la parte del psexec y saltear a ver solo la línea de comando que usé para el instalador.

Luego ejecuten el instalador del DC Agent -no hace falta que sea en un DC- y lleguen hasta la parte de la instalación cuya ventana se titula “Fortinet Single Sign On DC Agent vX.X.XXX Setup”. Sin continuar ni cerrar el instalador y a la carpeta de temporales (Windows + R para invocar “ejecutar”, y luego “%temp%”) y busquen el archivo dcagensetup.msi -o dcagentsetup64.msi- en una carpeta con un nombre similar a un GUID. Cópienlo a un lugar visible por los domain controllers que van a actualizarse. Terminada la copia, cierran el instalador.

Si no hay un share donde poner el instalador, es válido copiarlo al C:\ de cada DC (\\DC\C$).

Este instalador puede servirnos para actualizaciones en otros clientes o entornos, recomiendo copiarlo para ahorrarse este paso la próxima vez.

Actualización

Antes que nada, actualizan el Collector Agent.

Para los DC Agents, en una ventana de cmd o PowerShell, ejecutamos el comando:

psexec \\DC -s msiexec /i \\SERVER\SHARE\dcagentsetup64.msi /qn /forcerestart REINSTALL=ALL REINSTALLMODE=vomus

Nota: después de -s está la línea de comando (color naranja) relevante en caso de que quieran usar System Center o similares.

Cambiando “DC” por el domain controller a actualizar, y \\SERVER\SHARE por la ubicación donde copiamos el archivo .msi en el paso anterior.

Esperar un momento hasta que vean el mensaje:

msiexec exited on DC with error code 1641

No se asusten -como me pasó a mi- ya que, en realidad, no es un error, significa que se reiniciará el equipo (ERROR_SUCCESS_REBOOT_INITIATED).

En caso de no ver este mensaje, recomiendo que hagan upgrade manual vía consola o sesión RDP para controlar que está pasando. Tengan en cuenta que mi laboratorio tenía una configuración bastante limpia, es posible que algún producto o configuración interfiera con este upgrade en ciertos entornos.

Al terminar el reinicio, el DC agent estará actualizado y esto se podrá controlar desde el Collector Agent: Show Monitored DCs y controlando la versión en el keep-alive.

Tip: usándolo para instalación inicial

Si bien el Collector Agent es quien se encarga de la instalación inicial, y lo hace bien, este proceso puede usarse con el mismo propósito. Solo deberán agregar quitar de la línea de comando las opciones de upgrade y agregar la lista de IPs de colectores y la ignore list, con este formato:

COLLECTORAGENTLIST=”COL_1;COL_2;COL_N” IGNORELIST=”IGNORE_1;IGNORE_2;IGNORE_N”

Por ejemplo:

psexec \\DC01 -s msiexec /i \\SERVER\INSTALADORES\dcagentsetup64.msi /qn /forcerestart COLLECTORAGENTLIST=”192.168.1.10″ IGNORELIST=”mkolus”

Tip: ejecutándolo en varios servidores

Si se sienten con mucha confianza, o necesidad de adrenalina, psexec puede tomar una lista de servidores en un archivo .txt y actualizar en simultaneo varios servidores. Armen un .txt con la lista -uno por línea- y cambien el \\ por @ y el path del archivo, por ejemplo:

psexec @c:\servidores.txt -s msiexec /i \\SERVER\SHARE\dcagentsetup64.msi /qn /forcerestart REINSTALL=ALL REINSTALLMODE=vomus

 

Maximiliano Kolus
mkolus@druidics.com.ar
Druidics

6 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *