about_DesiredStateConfiguration

Se aplica a: Windows PowerShell 4.0, Windows PowerShell 5.0

TEMA

about_Desired_State_Configuration

DESCRIPCIÓN BREVE

Proporciona una breve introducción a la característica de configuración de estado deseado (DSC) de Windows PowerShell®.

DESCRIPCIÓN LARGA

DSC es una plataforma de administración de Windows PowerShell. Permite implementar y administrar datos de configuración de servicios de software y del entorno en el que se ejecutan estos servicios. DSC proporciona un conjunto de extensiones de lenguaje, nuevos cmdlets y recursos de Windows PowerShell que pueden servir para especificar mediante declaración cómo desea configurar el estado de su entorno de software.

DSC se introdujo en Windows PowerShell 4.0.

Para obtener información detallada sobre DSC, consulte "Configuración de estado deseado de Windows PowerShell" en la biblioteca de TechNet, en https://go.microsoft.com/fwlink/?LinkId=311940.

USO DE LA DSC

Para poder usar la DSC para configurar el entorno, primero debe definir un bloque de script de Windows PowerShell con la palabra clave Configuration, seguida de un identificador, que a su vez va seguido del par de llaves que delimitan el bloque. Dentro del bloque de configuración puede definir bloques de nodos que especifiquen el estado de configuración deseado para cada nodo (equipo) del entorno. Un bloque de nodos comienza con la palabra clave Node, seguida del nombre del equipo de destino, que puede ser una variable. Después del nombre del equipo vienen las llaves que delimitan el bloque de nodos. Dentro del bloque de nodos puede definir bloques de recursos para configurar recursos específicos. Un bloque de recursos comienza con el nombre del tipo de recurso, seguido del identificador que desee especificar para dicho bloque, seguido de las llaves que delimitan el bloque, tal como se muestra en el siguiente ejemplo.

Configuration MyWebConfig
    {
       # Parameters are optional
       param ($MachineName, $WebsiteFilePath)

       # A Configuration block can have one or more Node blocks
       Node $MachineName
       {
          # Next, specify one or more resource blocks
          # WindowsFeature is one of the resources you can use in a Node block
          # This example ensures the Web Server (IIS) role is installed
          WindowsFeature IIS
          {
             # To ensure that the role is not installed, set Ensure to \"Absent\"
              Ensure = "Present" 
              Name = "Web-Server" # Use the Name property from Get-WindowsFeature  
          }

          # You can use the File resource to create files and folders
          # \"WebDirectory\" is the name you want to use to refer to this instance
          File WebDirectory
          {
             Ensure = "Present"  # You can also set Ensure to "Absent“
             Type = "Directory“ # Default is “File”
             Recurse = $true
             SourcePath = $WebsiteFilePath
             DestinationPath = "C:\inetpub\wwwroot"
            
             # Ensure that the IIS block is successfully run first before
             # configuring this resource
             Requires = "[WindowsFeature]IIS"  # Use Requires for dependencies     
          }
       }
    }

Para crear una configuración, invoque el bloque de configuración del mismo modo que invocaría una función de Windows PowerShell, pasando todos los parámetros esperados que definiera (dos en el ejemplo anterior). Por ejemplo, en este caso:

    MyWebConfig -MachineName "TestMachine" –WebsiteFilePath "\\filesrv\WebFiles" `
         -OutputPath "C:\Windows\system32\temp" # OutputPath is optional

Esto genera un archivo MOF por nodo en la ruta de acceso especificada. Estos archivos MOF especifican la configuración deseada para cada nodo. A continuación, use el siguiente cmdlet para analizar los archivos MOF de la configuración, envíe la configuración correspondiente a cada nodo y establezca dichas configuraciones.

    Start-DscConfiguration –Verbose -Wait -Path "C:\Windows\system32\temp"

USO DE LA DSC PARA MANTENER EL ESTADO DE CONFIGURACIÓN

Con la DSC, la configuración es idempotente. Esto significa que si usa la DSC para establecer la misma configuración más de una vez, el estado de configuración resultante siempre será el mismo. Por este motivo, si sospecha que algún nodo de su entorno puede haber variado respecto del estado deseado de la configuración, puede volver a establecer la misma configuración de DSC para devolverlo al estado deseado. No es necesario modificar el script de configuración para tratar solo aquellos recursos cuyo estado ha variado respecto del estado deseado.

En el siguiente ejemplo se muestra cómo puede comprobar si el estado real de la configuración de un nodo determinado ha variado respecto de la última configuración de DSC establecida en el nodo. En este ejemplo se está comprobando la configuración del equipo local.

    $session = New-CimSession -ComputerName "localhost"
    Test-DscConfiguration -CimSession $session 

RECURSOS INTEGRADOS DE LA DSC

DSC proporciona el siguiente conjunto de recursos integrados que se pueden usar en un script de configuración: Registry, Script, Archive, File, WindowsFeature, Package, Environment, Group, User, Log, Service y WindowsProcess. En el ejemplo anterior se muestra cómo se deben usar los recursos File y WindowsFeature. Para ver todas las propiedades que puede usar con un recurso determinado, coloque el cursor sobre la palabra clave del recurso (por ejemplo, File) en el script de configuración de Windows PowerShell ISE, mantenga presionada la tecla Control y presione la barra espaciadora.

VEA TAMBIÉN

"Configuración de estado deseado de Windows PowerShell"

(https://go.microsoft.com/fwlink/?LinkId=311940)