Escritura, compilación y aplicación de una configuración

Se aplica a: Windows PowerShell 4.0, Windows PowerShell 5.0

Este ejercicio le guía a través de la creación y aplicación de una especificación de la configuración de estado deseado (DSC) de principio a fin. En el ejemplo siguiente, obtendrá información sobre cómo escribir y aplicar una configuración muy sencilla. La configuración garantizará la existencia de un archivo "HelloWorld.txt" en el equipo local. Si elimina el archivo, DSC volverá a crearlo la próxima vez que realice una actualización.

Para obtener información general de lo que es DSC y cómo funciona, consulte Información general sobre Desired State Configuration para desarrolladores.

Requisitos

Para ejecutar este ejemplo, necesitará un equipo con PowerShell 4.0 o posterior.

Escritura de la configuración

Una configuración de DSC es una función especial de PowerShell que define cómo quiere configurar uno o más equipos de destino (nodos).

En PowerShell ISE, o en otro editor de PowerShell, escriba lo siguiente:

Configuration HelloWorld {

    # Import the module that contains the File resource.
    Import-DscResource -ModuleName PsDesiredStateConfiguration

    # The Node statement specifies which targets to compile MOF files for, when
    # this configuration is executed.
    Node 'localhost' {

        # The File resource can ensure the state of files, or copy them from a
        # source to a destination with persistent updates.
        File HelloWorld {
            DestinationPath = "C:\Temp\HelloWorld.txt"
            Ensure = "Present"
            Contents   = "Hello World from DSC!"
        }
    }
}

Importante

En escenarios más avanzados en los que es necesario importar varios módulos para poder trabajar con muchos recursos de DSC en la misma configuración, asegúrese de colocar cada módulo en una línea independiente mediante Import-DscResource. Es más fácil mantener esto en el control de código fuente y resulta necesario cuando se trabaja con DSC en Azure State Configuration.

 Configuration HelloWorld {

  # Import the module that contains the File resource.
  Import-DscResource -ModuleName PsDesiredStateConfiguration
  Import-DscResource -ModuleName xWebAdministration

Guarde el archivo como "HelloWorld.ps1".

Definir una configuración es parecido a definir una función. El bloque Node especifica el nodo de destino que va a configurar, en este caso localhost.

La configuración llama a uno de los recursos, el recurso File. Los recursos se encargan de garantizar que el nodo de destino se encuentra en el estado definido por la configuración.

Compilar la configuración

Para que una configuración de DSC se aplique a un nodo, debe compilarse primero en un archivo MOF. Al ejecutarse la configuración, como en el caso de una función, se compilará un archivo .mof para cada nodo definido por el bloque Node. Para ejecutar la configuración, deberá usar el operador punto en el script HelloWorld.ps1 en el ámbito actual. Para obtener más información, vea about_Scripts (Acerca de los scripts).

Use el operador punto en el script HelloWorld.ps1 escribiendo la ruta de acceso donde la almacenó, después de . (punto, espacio). Después, puede ejecutar la configuración llamándola igual que una función. También puede invocar la función de configuración al final del script para que no necesite el operador de punto.

. C:\Scripts\HelloWorld.ps1
HelloWorld

Esto genera la siguiente salida:

Directory: C:\Scripts\HelloWorld


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        3/13/2017   5:20 PM           2746 localhost.mof

Aplicación de la configuración

Ahora que ha compilado MOF, puede aplicar la configuración al nodo de destino (en este caso, el equipo local) mediante una llamada al cmdlet Start-DscConfiguration.

El cmdlet Start-DscConfiguration indica el administrador de configuración local (LCM), el motor de DSC, para aplicar la configuración. El LCM se encarga de llamar a los recursos de DSC para aplicar la configuración.

Use el código siguiente para ejecutar el cmdlet Start-DSCConfiguration. Especifique la ruta de acceso del directorio donde se almacena localhost.mof en el parámetro Path. El cmdlet Start-DSCConfiguration busca en el directorio especificado todos los archivos <computername>.mof. El cmdlet Start-DSCConfiguration intenta aplicar cada archivo .mof que encuentra al elemento computername especificado por el nombre de archivo ("localhost", "server01", "dc-02", etc.).

Nota

Si no se especifica el parámetro -Wait, Start-DSCConfiguration crea un trabajo en segundo plano para llevar a cabo la operación. La especificación del parámetro -Verbose permite ver el resultado detallado de la operación. -Wait y -Verbose son parámetros opcionales, ambos.

Start-DscConfiguration -Path C:\Scripts\HelloWorld -Verbose -Wait

Pruebe la configuración.

Cuando el cmdlet Start-DSCConfiguration se haya completado, debe ver un archivo HelloWorld.txt en la ubicación especificada. Puede comprobar el contenido con el cmdlet Get-Content.

También puede probar el estado actual con Test-DSCConfiguration.

El resultado debe ser True si el nodo es compatible actualmente con la configuración aplicada.

Test-DSCConfiguration
True
Get-Content -Path C:\Temp\HelloWorld.txt
Hello World from DSC!

Nueva aplicación de la configuración

Para que la configuración se aplique de nuevo, puede quitar el archivo de texto creado por la configuración. El uso del cmdlet Start-DSCConfiguration con el parámetro -UseExisting. El parámetro -UseExisting indica a Start-DSCConfiguration que vuelva a aplicar el archivo "current.mof", que representa la última configuración aplicada correctamente.

Remove-Item -Path C:\Temp\HelloWorld.txt

Pasos siguientes