El motor de PowerShell DSC: Local Configuration Manager

Ayer te conté muy brevemente de qué trata PowerShell DSC y cómo es posible aplicar los requisitos necesarios para un servidor a través de código. Hoy quiero ir un paso más allá para hablarte del motor de DSC: Local Configuration Manager. Este motor es el encargado de lanzar estas configuraciones sobre los nodos y puede ser modificado en diferentes aspectos. Algunos de los más importantes son los que hoy te voy a contar en este post. En la versión actual la forma de configurar LCM es la siguiente:

Configuration CustomLCM
{
    Node "localhost"
    {
        LocalConfigurationManager
        {
            ConfigurationModeFrequencyMins = 120
            ConfigurationMode = "ApplyAndAutocorrect"
            RefreshMode = "Push"                        
            RebootNodeIfNeeded = $true
            AllowModuleOverwrite = $false
        }
    }
}

CustomLCM -OutputPath "C:\Users\gis\Desktop\lcm"

Como puedes ver, se utiliza la misma estructura que viste en el post anterior para la configuración de un nodo, solo que para configurar la forma en la que el motor se comportará frente a una configuración utilizando PowerShell DSC se utiliza la sección LocalConfigurationManager. En este ejemplo he modificado los siguientes valores:

  • ConfigurationModeFrequencyMins: determina la frecuencia con la que el motor intentará implementar la configuración en el nodo. El valor mínimo son 30 minutos.
  • ConfigurationMode: especifica cómo se aplicará la configuración. Existen tres valores posibles: ApplyOnly (aplica la configuración una vez y no hace nada más al respecto), ApplyAndMonitor (aplica toda nueva configuración que sea recibida) y ApplyAndAutoCorrect (aplica la configuración y corrige el nodo si esta llega a no coincidir con la configuración establecida).
  • RefreshMode: existen dos formas de hacer llegar una configuración a un nodo: desde un cliente lanzamos la configuración (push), que es lo que hemos aprendido hasta ahora, o bien utilizamos un servidor (pull) el cual es contactado por los nodos para recuperar la configuración que le pertenece.
  • RebootNodeIfNeeded: permite reiniciar el nodo si ningún tipo de aviso. En caso de ser false deberás reiniciar el nodo de forma manual.
  • AllowModuleOverwrite: controla si las nuevas configuraciones permiten sobrescribir las antiguas en el nodo.

Ejecuta el script anterior para obtener el mof correspondiente a la configuración.

Customlcm localhost.meta.mof
Customlcm localhost.meta.mof

Como puedes ver, en este caso el mof tiene el prefijo meta, el cual indica que se trata de una configuración no para el nodo en sí sino para el motor que ejecuta DSC. El último paso para aplicarlo es ejecutar la siguiente línea:

Set-DscLocalConfigurationManager -Path C:\Users\gis\Desktop\lcm

Para confirmar que los cambios se han realizado en el Local Configuration Manager puedes lanzar el siguiente comando:

Get-DscLocalConfigurationManager
Get-DscLocalConfigurationManager
Get-DscLocalConfigurationManager

Puedes encontrar más información sobre los diferentes parámetros que puedes ajustar en el siguiente enlace.

¡Saludos!