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
- Conozca más sobre las configuraciones de DSC en Configuraciones DSC.
- Vea qué recursos de DSC están disponibles y cómo crear recursos personalizados de DSC en recursos de DSC.
- Encuentre las configuraciones y los recursos de DSC en la Galería de PowerShell.