Leer en inglés

Compartir a través de


about_DesiredStateConfiguration

Descripción breve

Proporciona una breve introducción a la característica Desired State Configuration (DSC) de PowerShell.

Descripción larga

DSC es una plataforma de administración de PowerShell que permite implementar y administrar datos de configuración para servicios de software y administrar el entorno en el que se ejecutan estos servicios.

DSC proporciona un conjunto de extensiones de lenguaje de PowerShell, nuevos cmdlets y recursos que puede usar para especificar mediante declaración cómo desea que se configure el estado del entorno de software. También proporciona un medio para mantener y administrar las configuraciones existentes.

DSC se presenta en PowerShell 4.0.

Para obtener información detallada sobre DSC, consulte Introducción a la configuración de estado deseado de PowerShell.

DESARROLLO DE RECURSOS DSC CON CLASES

A partir de PowerShell 5.0, puede desarrollar recursos de DSC mediante clases. Para obtener más información, consulte about_Classes y Escritura de un recurso de DSC personalizado con clases de PowerShell.

USO DE DSC

Para usar DSC para configurar el entorno, primero defina un bloque de script de PowerShell mediante la palabra clave Configuration, seguido de un identificador, seguido por el par de llaves que delimita el bloque. Dentro del bloque de configuración, puede definir bloques de nodo que especifiquen el estado de configuración deseado para cada nodo (equipo) en el entorno. Un bloque de nodo comienza con la palabra clave Node, seguida del nombre del equipo de destino, que puede ser una variable. Después del nombre del equipo, se incluyen las llaves que delimitan el bloque de nodo. Dentro del bloque de nodos, puede definir bloques de recursos para configurar recursos específicos. Un bloque de recursos comienza con el nombre de tipo del recurso, seguido del identificador que desea especificar para ese bloque, seguido de las llaves que delimitan el bloque, como se muestra en el ejemplo siguiente.

PowerShell
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
            DependsOn = "[WindowsFeature]IIS"  # Use for dependencies
        }
    }
}

Para crear una configuración, invoque el bloque Configuration de la misma manera que invocaría una función de PowerShell, pasando los parámetros esperados que puede haber definido (dos en el ejemplo anterior). Por ejemplo, en este caso:

PowerShell
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 que especifique. Estos archivos MOF especifican la configuración deseada para cada nodo. A continuación, use el siguiente cmdlet para analizar los archivos MOF de configuración, enviar cada nodo su configuración correspondiente y aplicar esas configuraciones. Tenga en cuenta que no es necesario crear un archivo MOF independiente para los recursos de DSC basados en clases.

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

USO DE DSC PARA MANTENER EL ESTADO DE CONFIGURACIÓN

Con DSC, la configuración es idempotente. Esto significa que si usa DSC para aplicar 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 cualquier nodo del entorno puede haber desfase desde el estado de configuración deseado, puede volver a aplicar la misma configuración de DSC para devolverlos al estado deseado. No es necesario modificar el script de configuración para abordar solo los recursos cuyo estado se ha desfasado del estado deseado.

En el ejemplo siguiente se muestra cómo se puede comprobar si el estado real de la configuración en un nodo determinado se ha desfasado de la última configuración de DSC que se ha implementado en el nodo. En este ejemplo se comprueba la configuración del equipo local.

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

RECURSOS DE DSC INTEGRADOS

Puede usar los siguientes recursos integrados en los scripts de configuración:

Nombre Propiedades
Archivo {DestinationPath, Attributes, Checksum, Content...}
Archivo {Destination, Path, Checksum, Credential...}
Entorno {Name, DependsOn, Ensure, Path...}
Grupo {GroupName, Credential, DependsOn, Description...}
Registro {Message, DependsOn, PsDscRunAsCredential}
Paquete {Name, Path, ProductId, Arguments...}
Registro {Key, ValueName, DependsOn, Ensure...}
Script {GetScript, SetScript, TestScript, Credential...}
Service {Name, BuiltInAccount, Credential, Dependencies...}
Usuario {UserName, DependsOn, Description, Disabled...}
WaitForAll {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForAny {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForSome {NodeCount, NodeName, ResourceName, DependsOn...}
WindowsFeature {Name, Credential, DependsOn, Ensure...}
WindowsOptionalFeature {Name, DependsOn, Ensure, LogLevel...}
WindowsProcess {Argumentos, Ruta de acceso, Credencial, DependsOn...}

Para obtener una lista de los recursos de DSC disponibles en el sistema, ejecute el Get-DscResource cmdlet .

Nota

En las versiones de PowerShell inferiores a la 7.0, Get-DscResource no encuentra los recursos de DSC basados en clases.

En el ejemplo de este tema se muestra cómo usar los recursos File y WindowsFeature. Para ver todas las propiedades que puede usar con un recurso, inserte el cursor en la palabra clave resource (por ejemplo, Archivo) en el script de configuración en PowerShell ISE, mantenga presionada la tecla CTRL+SPACEBAR.

BUSCAR MÁS RECURSOS

Puede descargar, instalar y obtener información sobre muchos otros recursos de DSC disponibles creados por la comunidad de usuarios de PowerShell y DSC, y por Microsoft. Visite el Galería de PowerShell para examinar y obtener información sobre los recursos de DSC disponibles.

Consulte también