Escritura, compilación y aplicación de una configuraciónWrite, Compile, and Apply a Configuration

Se aplica a: Windows PowerShell 4.0, Windows PowerShell 5.0Applies To: 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.This exercise walks through creating and applying a Desired State Configuration (DSC) configuration from start to finish. En el ejemplo siguiente, obtendrá información sobre cómo escribir y aplicar una configuración muy sencilla.In the following example, you will learn how to write and apply a very simple Configuration. La configuración garantizará la existencia de un archivo "HelloWorld.txt" en el equipo local.The Configuration will ensure a "HelloWorld.txt" file exists on your local machine. Si elimina el archivo, DSC volverá a crearlo la próxima vez que realice una actualización.If you delete the file, DSC will recreate it the next time it updates.

Para obtener información general de lo que es DSC y cómo funciona, consulte Información general sobre Desired State Configuration para desarrolladores.For an overview of what DSC is and how it works, see Desired State Configuration Overview for Developers.

RequisitosRequirements

Para ejecutar este ejemplo, necesitará un equipo con PowerShell 4.0 o posterior.To run this example, you will need a computer running PowerShell 4.0 or later.

Escritura de la configuraciónWrite the configuration

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).A DSC Configuration is a special PowerShell function that defines how you want to configure one or more target computers (Nodes).

En PowerShell ISE, o en otro editor de PowerShell, escriba lo siguiente:In the PowerShell ISE, or other PowerShell editor, type the following:

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.In more advanced scenarios where multiple modules need to be imported so you can work with many DSC Resources in the same configuration, make sure to put each module in a separate line using 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.This is easier to maintain in source control and required when working with DSC in 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".Save the file as "HelloWorld.ps1".

Definir una configuración es parecido a definir una función.Defining a Configuration is like defining a Function. El bloque Node especifica el nodo de destino que va a configurar, en este caso localhost.The Node block specifies the target node to be configured, in this case localhost.

La configuración llama a uno de los recursos, el recurso File.The configuration calls one resources, the File resource. Los recursos se encargan de garantizar que el nodo de destino se encuentra en el estado definido por la configuración.Resources do the work of ensuring that the target node is in the state defined by the configuration.

Compilar la configuraciónCompile the configuration

Para que una configuración de DSC se aplique a un nodo, debe compilarse primero en un archivo MOF.For a DSC configuration to be applied to a node, it must first be compiled into a MOF file. 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.Running the configuration, like a function, will compile one .mof file for every Node defined by the Node block. Para ejecutar la configuración, deberá usar el operador punto en el script HelloWorld.ps1 en el ámbito actual.In order to run the configuration, you need to dot source your HelloWorld.ps1 script into the current scope. Para obtener más información, vea about_Scripts (Acerca de los scripts).For more information, see about_Scripts.

Use el operador punto en el script HelloWorld.ps1 escribiendo la ruta de acceso donde la almacenó, después de . (punto, espacio).Dot source your HelloWorld.ps1 script by typing in the path where you stored it, after the . (dot, space). Después, puede ejecutar la configuración llamándola igual que una función.You may then, run your configuration by calling it like a function. También puede invocar la función de configuración al final del script para que no necesite el operador de punto.You could also invoke the configuration function at the bottom of the script so that you don't need to dot-source.

. C:\Scripts\HelloWorld.ps1
HelloWorld

Esto genera la siguiente salida:This generates the following output:

Directory: C:\Scripts\HelloWorld


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

Aplicación de la configuraciónApply the configuration

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.Now that you have the compiled MOF, you can apply the configuration to the target node (in this case, the local computer) by calling the Start-DscConfiguration cmdlet.

El cmdlet Start-DscConfiguration indica el administrador de configuración local (LCM), el motor de DSC, para aplicar la configuración.The Start-DscConfiguration cmdlet tells the Local Configuration Manager (LCM), the engine of DSC, to apply the configuration. El LCM se encarga de llamar a los recursos de DSC para aplicar la configuración.The LCM does the work of calling the DSC resources to apply the configuration.

Use el código siguiente para ejecutar el cmdlet Start-DSCConfiguration.Use the code below to execute the Start-DSCConfiguration cmdlet. Especifique la ruta de acceso del directorio donde se almacena localhost.mof en el parámetro Path.Specify the directory path where your localhost.mof is stored to the Path parameter. El cmdlet Start-DSCConfiguration busca en el directorio especificado todos los archivos <computername>.mof.The Start-DSCConfiguration cmdlet looks through the directory specified for any <computername>.mof files. 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.).The Start-DSCConfiguration cmdlet attempts to apply each .mof file it finds to the computername specified by the filename ("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.If the -Wait parameter is not specified, Start-DSCConfiguration creates a background job to perform the operation. La especificación del parámetro -Verbose permite ver el resultado detallado de la operación.Specifying the -Verbose parameter allows you to watch the Verbose output of the operation. -Wait y -Verbose son parámetros opcionales, ambos.-Wait, and -Verbose are both optional parameters.

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

Pruebe la configuración.Test the configuration

Cuando el cmdlet Start-DSCConfiguration se haya completado, debe ver un archivo HelloWorld.txt en la ubicación especificada.Once the Start-DSCConfiguration cmdlet is complete, you should see a HelloWorld.txt file in the location you specified. Puede comprobar el contenido con el cmdlet Get-Content.You can verify the contents with the Get-Content cmdlet.

También puede probar el estado actual con Test-DSCConfiguration.You can also test the current status using Test-DSCConfiguration.

El resultado debe ser True si el nodo es compatible actualmente con la configuración aplicada.The output should be True if the Node is currently compliant with the applied Configuration.

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

Nueva aplicación de la configuraciónRe-applying the configuration

Para que la configuración se aplique de nuevo, puede quitar el archivo de texto creado por la configuración.To see your configuration get applied again, you can remove the text file created by your Configuration. El uso del cmdlet Start-DSCConfiguration con el parámetro -UseExisting.The use the Start-DSCConfiguration cmdlet with the -UseExisting parameter. El parámetro -UseExisting indica a Start-DSCConfiguration que vuelva a aplicar el archivo "current.mof", que representa la última configuración aplicada correctamente.The -UseExisting parameter instructs Start-DSCConfiguration to re-apply the "current.mof" file, which represents the most recently successfully applied configuration.

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

Pasos siguientesNext steps