Scrivere, compilare e applicare una configurazione
Si applica a: Windows PowerShell 4.0, Windows PowerShell 5.0
Questo esercizio illustra nei dettagli tutti i passaggi per creare e applicare una configurazione DSC (Desired State Configuration). Nell'esempio seguente si apprenderà come scrivere e applicare una configurazione molto semplice. La configurazione garantirà la presenza di un file "HelloWorld.txt" nel computer locale. Se si elimina il file, DSC lo crea nuovamente al successivo aggiornamento.
Per una panoramica di DSC e del relativo funzionamento, vedere Panoramica di DSC (Desired State Configuration) per sviluppatori.
Requisiti
Per eseguire questo esempio, è necessario un computer che esegue PowerShell 4.0 o versione successiva.
Scrivere la configurazione
Una configurazione DSC è una funzione speciale di PowerShell che definisce come si vogliono configurare uno o più computer di destinazione (nodi).
In PowerShell ISE o altri editor di PowerShell digitare quanto segue:
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
Negli scenari più avanzati in cui è necessario importare più moduli per poter usare numerose risorse DSC nella stessa configurazione, assicurarsi di inserire ogni modulo in una riga separata usando Import-DscResource
. Questa operazione è più semplice da gestire nel controllo del codice sorgente ed è richiesta quando si usa DSC in State Configuration di Azure.
Configuration HelloWorld {
# Import the module that contains the File resource.
Import-DscResource -ModuleName PsDesiredStateConfiguration
Import-DscResource -ModuleName xWebAdministration
Salvare il file con nome "HelloWorld.ps1".
La definizione di una configurazione è simile a definizione di una funzione. Il blocco Node specifica il nodo di destinazione da configurare, in questo caso localhost
.
La configurazione chiama un'unica risorsa, la risorsa File
. Le risorse si occupano di assicurarsi che il nodo di destinazione sia nello stato definito dalla configurazione.
Compilare la configurazione
Per applicare una configurazione DSC a un nodo, è prima necessario compilarla in un file MOF. L'esecuzione della configurazione, come una funzione, compila un unico file .mof
per ogni nodo definito dal blocco Node
. Per eseguire la configurazione, è necessario usare il dot sourcing per lo script HelloWorld.ps1
nell'ambito corrente. Per altre informazioni, vedere about_Scripts.
Usare il dot sourcing per lo script HelloWorld.ps1
digitando il percorso in cui è archiviato dopo .
(punto, spazio). È quindi possibile eseguire la configurazione chiamandola come una funzione. È anche possibile richiamare la funzione di configurazione nella parte finale dello script in modo che non sia necessario eseguire il dot sourcing.
. C:\Scripts\HelloWorld.ps1
HelloWorld
Verrà generato l'output seguente:
Directory: C:\Scripts\HelloWorld
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/13/2017 5:20 PM 2746 localhost.mof
Applicare la configurazione
Ora che è disponibile il file MOF compilato, è possibile applicare la configurazione al nodo di destinazione, in questo caso il computer locale, chiamando il cmdlet Start-DscConfiguration.
Il cmdlet Start-DscConfiguration
indica a Gestione configurazione locale, il motore di DSC, di applicare la configurazione. Gestione configurazione locale si occupa di chiamare le risorse DSC per applicare la configurazione.
Usare il codice seguente per eseguire il cmdlet Start-DSCConfiguration
. Specificare il percorso della directory in cui è archiviato il file localhost.mof
nel parametro Path. Il cmdlet Start-DSCConfiguration
ricerca nella directory specificata i file <computername>.mof
. Il cmdlet Start-DSCConfiguration
tenta di applicare ogni file .mof
trovato al computername
specificato dal nome file ("localhost", "server01", "dc-02" e così via).
Nota
Se il parametro -Wait
non è specificato, Start-DSCConfiguration
crea un processo in background per eseguire l'operazione. La specifica del parametro -Verbose
consente di controllare l'output dettagliato dell'operazione. -Wait
e -Verbose
sono entrambi parametri facoltativi.
Start-DscConfiguration -Path C:\Scripts\HelloWorld -Verbose -Wait
Testare la configurazione
Al termine del cmdlet Start-DSCConfiguration
, viene visualizzato un file HelloWorld.txt
nel percorso specificato. È possibile verificare il contenuto con il cmdlet Get-Content.
È anche possibile testare lo stato corrente usando Test-DSCConfiguration.
L'output sarà True
se il nodo è attualmente conforme alla configurazione applicata.
Test-DSCConfiguration
True
Get-Content -Path C:\Temp\HelloWorld.txt
Hello World from DSC!
Riapplicazione della configurazione
Per applicare nuovamente la configurazione, è possibile rimuovere il file di testo creato dalla configurazione. Quindi usare il cmdlet Start-DSCConfiguration
con il parametro -UseExisting
. Il parametro -UseExisting
indica a Start-DSCConfiguration
di riapplicare il file "current.mof" che rappresenta l'ultima configurazione applicata correttamente.
Remove-Item -Path C:\Temp\HelloWorld.txt
Passaggi successivi
- Ulteriori informazioni sulle configurazioni DSC sono disponibili in Configurazioni DSC.
- Per informazioni sulle risorse DSC disponibili e su come creare risorse DSC personalizzate, vedere Risorse DSC.
- Le configurazioni e le risorse DSC sono disponibili in PowerShell Gallery.