Skriva, kompilera och tillämpa en konfiguration
Gäller för: Windows PowerShell 4.0, Windows PowerShell 5.0
I den här övningen går vi igenom hur du skapar och tillämpar en Desired State Configuration-konfiguration (DSC) från början till slut. I följande exempel får du lära dig hur du skriver och tillämpar en mycket enkel konfiguration. Konfigurationen säkerställer att filen "HelloWorld.txt" finns på den lokala datorn. Om du tar bort filen återskapar DSC den nästa gång den uppdateras.
En översikt över vad DSC är och hur det fungerar finns i Desired State Configuration Översikt för utvecklare.
Krav
Om du vill köra det här exemplet behöver du en dator som kör PowerShell 4.0 eller senare.
Skriva konfigurationen
En DSC-konfiguration är en särskild PowerShell-funktion som definierar hur du vill konfigurera en eller flera måldatorer (noder).
I PowerShell ISE eller någon annan PowerShell-redigerare skriver du följande:
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!"
}
}
}
Viktigt
I mer avancerade scenarier där flera moduler måste importeras så att du kan arbeta med många DSC-resurser i samma konfiguration ser du till att placera varje modul i en separat rad med hjälp av Import-DscResource
. Detta är enklare att underhålla i källkontrollen och krävs när du arbetar med DSC i Azure State Configuration.
Configuration HelloWorld {
# Import the module that contains the File resource.
Import-DscResource -ModuleName PsDesiredStateConfiguration
Import-DscResource -ModuleName xWebAdministration
Spara filen som "HelloWorld.ps1".
Att definiera en konfiguration är som att definiera en funktion. Node-blocket anger vilken målnod som ska konfigureras, i det här fallet localhost
.
Konfigurationen anropar en resurs, resursen File
. Resurser gör arbetet med att se till att målnoden är i det tillstånd som definieras av konfigurationen.
Kompilera konfigurationen
För att en DSC-konfiguration ska tillämpas på en nod måste den först kompileras till en MOF-fil. Om du kör konfigurationen, som en funktion, kompileras en .mof
fil för varje nod som definieras av Node
blocket. För att kunna köra konfigurationen måste du punktbegränsaHelloWorld.ps1
skriptet till det aktuella omfånget. Mer information finns i about_Scripts.
Punktkälla ditt HelloWorld.ps1
skript genom att skriva i sökvägen där du lagrade det, efter .
(punkt, blanksteg). Sedan kan du köra konfigurationen genom att anropa den som en funktion. Du kan också anropa konfigurationsfunktionen längst ned i skriptet så att du inte behöver punktkälla.
. C:\Scripts\HelloWorld.ps1
HelloWorld
Detta genererar följande utdata:
Directory: C:\Scripts\HelloWorld
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/13/2017 5:20 PM 2746 localhost.mof
Tillämpa konfigurationen
Nu när du har den kompilerade MOF:en kan du tillämpa konfigurationen på målnoden (i det här fallet den lokala datorn) genom att anropa cmdleten Start-DscConfiguration .
Cmdleten Start-DscConfiguration
instruerar den lokala Configuration Manager (LCM), motorn i DSC, att tillämpa konfigurationen. LCM utför arbetet med att anropa DSC-resurserna för att tillämpa konfigurationen.
Använd koden nedan för att köra cmdleten Start-DSCConfiguration
. Ange den katalogsökväg där din localhost.mof
lagras i parametern Path . Cmdleten Start-DSCConfiguration
söker igenom katalogen som angetts för alla <computername>.mof
filer. Cmdleten Start-DSCConfiguration
försöker tillämpa varje .mof
fil som hittas på som computername
anges av filnamnet ("localhost", "server01", "dc-02" osv.).
Anteckning
Om parametern -Wait
inte anges Start-DSCConfiguration
skapar ett bakgrundsjobb för att utföra åtgärden. Om du anger parametern -Verbose
kan du watch utförliga utdata för åtgärden. -Wait
-Verbose
och är båda valfria parametrar.
Start-DscConfiguration -Path C:\Scripts\HelloWorld -Verbose -Wait
Testa konfigurationen
När cmdleten Start-DSCConfiguration
är klar bör du se en HelloWorld.txt
fil på den plats som du har angett. Du kan kontrollera innehållet med cmdleten Get-Content .
Du kan också testa den aktuella statusen med Test-DSCConfiguration.
Utdata ska vara True
om noden för närvarande är kompatibel med den tillämpade konfigurationen.
Test-DSCConfiguration
True
Get-Content -Path C:\Temp\HelloWorld.txt
Hello World from DSC!
Tillämpa konfigurationen igen
Om du vill se hur konfigurationen tillämpas igen kan du ta bort textfilen som skapades av konfigurationen. Använd cmdleten Start-DSCConfiguration
med parametern -UseExisting
. Parametern -UseExisting
instruerar Start-DSCConfiguration
att tillämpa filen "current.mof", som representerar den senast tillämpade konfigurationen.
Remove-Item -Path C:\Temp\HelloWorld.txt
Nästa steg
- Läs mer om DSC-konfigurationer i DSC-konfigurationer.
- Se vilka DSC-resurser som är tillgängliga och hur du skapar anpassade DSC-resurser på DSC-resurser.
- Hitta DSC-konfigurationer och -resurser i PowerShell-galleriet.