Een configuratie schrijven, compileren en toepassen
Van toepassing op: Windows PowerShell 4.0, Windows PowerShell 5.0
In deze oefening wordt stapsgewijs uitgelegd hoe u een dsc-configuratie (Desired State Configuration) van begin tot eind maakt en toepast. In het volgende voorbeeld leert u hoe u een zeer eenvoudige configuratie schrijft en toepast. De configuratie zorgt ervoor dat er een 'HelloWorld.txt'-bestand op uw lokale computer bestaat. Als u het bestand verwijdert, maakt DSC het opnieuw wanneer het de volgende keer wordt bijgewerkt.
Zie Desired State Configuration Overzicht voor ontwikkelaars voor een overzicht van wat DSC is en hoe het werkt.
Vereisten
Als u dit voorbeeld wilt uitvoeren, hebt u een computer met PowerShell 4.0 of hoger nodig.
De configuratie schrijven
Een DSC-configuratie is een speciale PowerShell-functie waarmee wordt gedefinieerd hoe u een of meer doelcomputers (knooppunten) wilt configureren.
Typ het volgende in de PowerShell ISE of een andere PowerShell-editor:
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!"
}
}
}
Belangrijk
In geavanceerdere scenario's waarin meerdere modules moeten worden geïmporteerd zodat u met veel DSC-resources in dezelfde configuratie kunt werken, moet u ervoor zorgen dat u elke module in een afzonderlijke regel plaatst met behulp van Import-DscResource
. Dit is eenvoudiger te onderhouden in broncodebeheer en vereist bij het werken met DSC in Azure State Configuration.
Configuration HelloWorld {
# Import the module that contains the File resource.
Import-DscResource -ModuleName PsDesiredStateConfiguration
Import-DscResource -ModuleName xWebAdministration
Sla het bestand op als 'HelloWorld.ps1'.
Het definiëren van een configuratie is hetzelfde als het definiëren van een functie. Het knooppuntblok geeft het doelknooppunt aan dat moet worden geconfigureerd, in dit geval localhost
.
De configuratie roept één resource aan, de File
resource. Resources zorgen ervoor dat het doelknooppunt de status heeft die is gedefinieerd door de configuratie.
De configuratie compileren
Als u een DSC-configuratie wilt toepassen op een knooppunt, moet deze eerst worden gecompileerd in een MOF-bestand. Als u de configuratie uitvoert, zoals een functie, wordt één .mof
bestand gecompileerd voor elk knooppunt dat door het Node
blok wordt gedefinieerd. Als u de configuratie wilt uitvoeren, moet u de bron van het HelloWorld.ps1
script in het huidige bereik plaatsen. Zie about_Scripts voor meer informatie.
Een puntbron voor uw HelloWorld.ps1
script door te typen in het pad waar u het hebt opgeslagen, na de .
(punt, spatie). U kunt de configuratie vervolgens uitvoeren door deze aan te roepen als een functie. U kunt ook de configuratiefunctie onder aan het script aanroepen, zodat u geen puntbron hoeft te gebruiken.
. C:\Scripts\HelloWorld.ps1
HelloWorld
Hiermee wordt de volgende uitvoer gegenereerd:
Directory: C:\Scripts\HelloWorld
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/13/2017 5:20 PM 2746 localhost.mof
De configuratie toepassen
Nu u de gecompileerde MOF hebt, kunt u de configuratie toepassen op het doelknooppunt (in dit geval de lokale computer) door de cmdlet Start-DscConfiguration aan te roepen.
De Start-DscConfiguration
cmdlet vertelt de Local Configuration Manager (LCM), de engine van DSC, om de configuratie toe te passen. De LCM roept de DSC-resources aan om de configuratie toe te passen.
Gebruik de onderstaande code om de Start-DSCConfiguration
cmdlet uit te voeren. Geef het mappad op waar uw localhost.mof
is opgeslagen naar de path-parameter . De Start-DSCConfiguration
cmdlet zoekt door de map die is opgegeven voor alle <computername>.mof
bestanden. De Start-DSCConfiguration
cmdlet probeert elk .mof
gevonden bestand toe te passen op de computername
opgegeven door de bestandsnaam ('localhost', 'server01', 'dc-02', enzovoort).
Notitie
Als de -Wait
parameter niet is opgegeven, Start-DSCConfiguration
maakt u een achtergrondtaak om de bewerking uit te voeren. Als u de -Verbose
parameter opgeeft, kunt u de uitgebreide uitvoer van de bewerking watch. -Wait
en -Verbose
zijn beide optionele parameters.
Start-DscConfiguration -Path C:\Scripts\HelloWorld -Verbose -Wait
De configuratie testen
Zodra de Start-DSCConfiguration
cmdlet is voltooid, ziet u een HelloWorld.txt
bestand op de locatie die u hebt opgegeven. U kunt de inhoud controleren met de cmdlet Get-Content .
U kunt ook de huidige status testen met Test-DSCConfiguration.
De uitvoer moet zijn True
als het knooppunt momenteel compatibel is met de toegepaste configuratie.
Test-DSCConfiguration
True
Get-Content -Path C:\Temp\HelloWorld.txt
Hello World from DSC!
De configuratie opnieuw toepassen
Als u wilt zien dat uw configuratie opnieuw wordt toegepast, kunt u het tekstbestand verwijderen dat door uw configuratie is gemaakt. Gebruik de Start-DSCConfiguration
cmdlet met de -UseExisting
parameter . De -UseExisting
parameter instrueert Start-DSCConfiguration
om het bestand 'current.mof' opnieuw toe te passen, dat de meest recent toegepaste configuratie vertegenwoordigt.
Remove-Item -Path C:\Temp\HelloWorld.txt
Volgende stappen
- Meer informatie over DSC-configuraties vindt u op DSC-configuraties.
- Bekijk welke DSC-resources beschikbaar zijn en hoe u aangepaste DSC-resources maakt op DSC-resources.
- Zoek DSC-configuraties en -resources in de PowerShell Gallery.