1.1K
No hay duda de que PowerShell es una herramienta excelente para las operaciones modernas de DevOps y la gestión de la configuración. La configuración de estado deseado (DSC) de PowerShell proporciona un modelo declarativo para la administración de la configuración, lo que permite a los ingenieros detallar cómo quieren que se vea la infraestructura y luego permitir que PowerShell realice esa configuración.
¿Qué es la configuración de estado deseado (DSC) de PowerShell?
Configuración del estado deseado (DSC) le permite configurar Windows y aplicaciones mediante un archivo de configuración y la configuración de recursos de PowerShell DSC. Al igual que en otros sistemas de gestión de configuración (Puppet o Ansible), al usar configuraciones DSC, el administrador puede describir la configuración requerida (estado objetivo) en el archivo de configuración y luego usar PowerShell para aplicarlo a una o varias computadoras/servidores. Con la configuración de estado deseado de PowerShell, puede simplificar enormemente la implementación y configuración de servidores y estaciones de trabajo configurando sus sistemas operativos como código.
DSC apareció por primera vez en PowerShell 4.0 (una versión de Windows Management Framework introducida en Windows Server 2012 R2).
Más allá de lo básico: mejora de la eficiencia con recursos DSC integrados
El poder de DSC se ve amplificado por su amplia gama de recursos integrados. Estos recursos de DSC facilitan numerosas tareas de configuración, desde la gestión de archivos y servicios hasta el control de la configuración del registro. Al aprovechar estos recursos, los administradores pueden controlar con precisión las configuraciones del sistema y aumentar la eficiencia operativa.
Configuración avanzada de DSC
Para ilustrar aún más el poder de PowerShell DSC, examinemos cómo utilizar funciones avanzadas como el Administrador de configuración local (LCM). El LCM es el motor de DSC, que se ejecuta en cada nodo de destino y administra la aplicación de las configuraciones de DSC. La interacción con los recursos de DSC garantiza que el sistema esté en el estado deseado y mantenga ese estado.
Exploración de recursos de DSC de terceros
Más allá de los recursos integrados, PowerShell DSC admite recursos DSC de terceros, lo que amplía aún más la gama de posibilidades de administración de la configuración. Estos recursos externos, que se encuentran en la Galería de PowerShell, permiten una integración perfecta de DSC con varias herramientas y tecnologías, lo que promueve un enfoque holístico para la administración de la configuración.
Mantenerse informado: Seguimiento de eventos DSC
Un aspecto crítico de DSC es realizar un seguimiento de los cambios y actividades de configuración. Esto se puede lograr a través de eventos de DSC, que ofrecen una descripción completa de las operaciones de DSC. Los eventos DSC son clave para comprender los cambios aplicados a su sistema y son cruciales para solucionar problemas de configuración.
Configuración de recursos DSC
Como se mencionó anteriormente, el administrador debe crear un archivo de configuración que describa el estado de Windows. Puede utilizar los recursos integrados (archivo, entorno, registro, secuencia de comandos, servicio, usuario) o recursos de DSC de terceros. Windows 10 (Windows Server 2016) tiene 23 tipos de recursos DSC integrados. Puede mostrarlos usando el Obtener DSCResource dominio:
- Archivo
- FirmaValidación
- Archivo
- Ambiente
- Grupo
- Conjunto de grupo
- Registro
- Paquete
- conjunto de procesos
- Registro
- Guion
- Servicio
- conjunto de servicios
- Usuario
- esperar a todos
- EsperarCualquiera
- EsperarAlgunos
- Característica de Windows
- Conjunto de funciones de Windows
- Característica opcional de Windows
- Conjunto de funciones opcionales de Windows
- WindowsPackageCab
- WindowsProceso
Para demostrar cómo funciona DSC, crearemos un archivo de configuración simple. Supongamos que nuestra tarea es configurar el servidor de la siguiente manera: deshabilitar el servicio BranchCache, iniciar el proceso notepad.exe, permitir el acceso RDP en el registro (el parámetro fDenyTSConnections se establece en 0) y crear el directorio C:\PS en el local. conducir.
Nota. Lea nuestra publicación sobre cómo comprobar el estado de los servicios de Windows con PowerShell.
La palabra clave de configuración se utiliza para crear el archivo de configuración de DSC. Crear el dsc_test.ps1 archivo con el siguiente código:
Configuration TestConfiguration { Node dc01 { #Disable BranchCache Service Service PeerDistSvc { Name = "PeerDistSvc" StartupType = "Disabled" State = "Stopped" } #Enable RDP Registry fDenyTSConnections { Ensure = "Present" Key = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" ValueName = "fDenyTSConnections" ValueData = "0" ValueType = "Dword" } #Create C:\PS folder File InstallDir { Ensure = "Present" Type = "Directory" DestinationPath = "C:\PS" } #Run Notepad.exe WindowsProcess Notepad { Ensure = "Present" Path = "C:\WINDOWS\system32\notepad.exe" Arguments = "" } } } TestConfiguration
Pista. En un archivo de configuración, puede describir el estado de uno o más hosts.
Ejecute este archivo de script de PS1. Como resultado, el dc01.mof El archivo aparecerá en el directorio actual.
Basado en el archivo de configuración para cada nodo, se genera un archivo separado en el formato de archivo MOF (formato de objeto de administración). Puede ver manualmente el contenido del archivo MOF:
Para aplicar la configuración del archivo de configuración de DSC al servidor, debe aplicar la configuración del archivo MOF.
Hay dos formas de aplicar archivos MOF.
- Empujar — los archivos de configuración se transfieren desde la estación de trabajo del administrador a las computadoras remotas a través de WinRM (administración remota de Windows). Para hacer esto, use el Inicio-DscConfiguration cmdlet;
- Jalar — las computadoras administradas se conectan a un servidor de archivos (repositorio de archivos de configuración), descargan y aplican configuraciones por su cuenta. La configuración de extracción de DSC se basa en un AppPool especial basado en IIS.
Considere aplicar la configuración de DSC a través del modo push.
Consejo. Antes de usar el método Push, debe configurar la política de ejecución «Set-ExecutionPolicy RemoteSigned» y habilitar PowerShell remoto mediante el comando «Enable-PSRemoting».
Para hacer esto, use el Inicio-DscConfiguration comando con el -Camino argumento, que especifica la ruta al directorio de archivos MOF. Aplique el archivo de configuración creado anteriormente a la computadora actual:
Start-DscConfiguration -Path C:UsersAdministratorTestConfiguration
Pista. Utilice los parámetros Wait y Verbose para obtener información más detallada sobre cómo aplicar la configuración.
Después de ejecutar este comando, si la configuración de la computadora cumplió con los requisitos, nada cambiará; si no, la configuración cambiará. Configuraciones aplicadas en una computadora por el Servicio de administrador de configuración local. En nuestro ejemplo, se creó el directorio C:PS en el disco, se detuvo el servicio BranchCahe y se inició el proceso notepad.exe en nombre de NT AUTHORITYSYSTEM.
Los ajustes realizados con el DSC pueden cambiar con el tiempo. Puede comprobar si hay discrepancias entre la configuración actual y el archivo de configuración utilizando el Prueba-DscConfiguration dominio. Por ejemplo, eliminamos los procesos de notepad.exe y eliminamos el directorio C:PS. Ejecute el comando:
Test-DscConfiguration
El cmdlet regresó FALSOlo que significa que el estado del servidor no coincide con la configuración.
Utilizando el Get-DscConfiguration comando, puede obtener el valor de los ajustes de configuración DSC actuales.
Para eliminar la configuración DSC actual de la computadora, ejecute el comando:
Remove-DscConfigurationDocument -Stage Current -Verbose
Preguntas frecuentes sobre la configuración del estado deseado de PowerShell
¿Cuál es la función de un archivo MOF en la configuración del estado deseado?
El archivo de formato de objeto de administración (MOF) es esencial para el proceso de DSC. Generado a partir de un archivo de configuración de DSC, cada documento MOF describe el estado deseado de un nodo de destino. Una vez creados, los archivos MOF son enviados al nodo o extraídos por el nodo, dependiendo de si está utilizando el modo de inserción o extracción.
¿Puedo usar PowerShell DSC en plataformas que no sean de Windows?
Sí, con la llegada de PowerShell Core (una versión multiplataforma de PowerShell), también puede usar DSC en sistemas Linux y MacOS. Las configuraciones de DSC funcionan de la misma manera, utilizando los recursos nativos de la plataforma en lugar de los específicos de Windows.
¿Cuál es la diferencia entre los métodos Push y Pull en DSC?
El método de inserción implica aplicar manualmente la configuración del archivo MOF a los nodos de destino desde la estación de trabajo de un administrador, normalmente utilizando el Inicio-DscConfiguration cmdlet. Por otro lado, el método de extracción implica configurar un servidor de extracción (un repositorio central) desde el cual los nodos administrados obtienen y aplican las configuraciones por sí mismos.
¿Cómo superviso los cambios en una configuración de DSC?
Puede monitorear los cambios en las configuraciones de DSC usando el Prueba-DscConfiguration comando, que comprueba si la configuración actual de un sistema coincide con el estado deseado definido en el archivo de configuración de DSC. También puede utilizar el Get-DscConfiguration Comando para obtener los ajustes de configuración actuales de DSC.
¿Qué son los recursos de DSC y dónde puedo encontrarlos?
Los recursos de DSC son módulos de PowerShell que se utilizan para describir el estado de un aspecto específico de un sistema, como un archivo o una función de Windows. Son componentes clave para definir la configuración en un script DSC. Puede encontrar recursos de DSC integrados en el sistema operativo Windows o descargar recursos adicionales de la Galería de PowerShell.
¿Cómo encaja el Administrador de configuración local (LCM) en DSC?
El Administrador de configuración local (LCM) es esencialmente el motor de DSC. Instalado en todos los nodos de destino, el LCM es responsable de administrar la aplicación de las configuraciones de DSC y garantizar que el sistema esté en el estado deseado.
¿Es posible eliminar una configuración DSC de un nodo?
Sí, puede eliminar una configuración DSC actual de un nodo mediante el Remove-DscConfigurationDocument cmdlet, seguido del -Etapa de corriente argumento.
¿Cómo puedo garantizar la misma configuración en varios nodos?
El DSC le permite definir un «bloque de nodos» dentro de su archivo de configuración donde lista todos los nodos que necesitan tener la misma configuración. Una vez que aplique la configuración, cada nodo enumerado recibirá la misma configuración, lo que garantiza la uniformidad en varios sistemas.
Resumen: PowerShell DSC como su herramienta de administración de configuración de referencia
Dominar PowerShell DSC le permite describir cómo quiere que se vea su entorno y manejar el resto. Automatiza la configuración de sus sistemas, reduce la posibilidad de errores y ahorra mucho tiempo. Ya sea que esté implementando configuraciones en un solo nodo o en un gran grupo de servidores, DSC ofrece una solución altamente eficaz, flexible y escalable. Saber cómo funciona DSC puede ser una gran ventaja para mantener un entorno de producción eficiente y estable. A medida que avanzamos en el mundo donde la «infraestructura como código» es la norma, la importancia de herramientas como PowerShell DSC sigue creciendo.