Quickstart: een website maken met Desired State Configuration (DSC)
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 voorbeeld dat we gaan gebruiken, zorgt u ervoor dat op een server de Web-Server
iis-functie is ingeschakeld en dat de inhoud voor een eenvoudige 'Hallo wereld'-website aanwezig is in de inetpub\wwwroot
map van die server.
Zie overzicht van Desired State Configuration voor besluitvormers voor een overzicht van wat DSC is en hoe het werkt.
Vereisten
Als u dit voorbeeld wilt uitvoeren, hebt u een computer met Windows Server 2012 of hoger en PowerShell 4.0 of hoger nodig.
Het index.htm-bestand schrijven en plaatsen
Eerst maken we het HTML-bestand dat we gebruiken als de inhoud van de website.
Maak in de hoofdmap een map met de naam test
.
Typ de volgende tekst in een teksteditor:
<head></head>
<body>
<p>Hello World!</p>
</body>
Sla deze op als index.htm
in de test
map die u eerder hebt gemaakt.
De configuratie schrijven
Een DSC-configuratie is een speciale PowerShell-functie die definieert hoe u een of meer doelcomputers (knooppunten) wilt configureren.
Typ in PowerShell ISE het volgende:
Configuration WebsiteTest {
# Import the module that contains the resources we're using.
Import-DscResource -ModuleName PsDesiredStateConfiguration
# The Node statement specifies which targets this configuration will be applied to.
Node 'localhost' {
# The first resource block ensures that the Web-Server (IIS) feature is enabled.
WindowsFeature WebServer {
Ensure = "Present"
Name = "Web-Server"
}
# The second resource block ensures that the website content copied to the website root folder.
File WebsiteContent {
Ensure = 'Present'
SourcePath = 'c:\test\index.htm'
DestinationPath = 'c:\inetpub\wwwroot'
}
}
}
Sla het bestand op als WebsiteTest.ps1
.
U kunt zien dat het lijkt op een PowerShell-functie, met de toevoeging van het trefwoord Configuratie dat wordt gebruikt vóór de naam van de functie.
Het knooppuntblok geeft het doelknooppunt aan dat moet worden geconfigureerd. In dit geval, localhost
.
De configuratie roept twee resources aan: WindowsFeature en File. 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. Hiervoor voert u de configuratie uit als een functie. Navigeer in een PowerShell-console naar dezelfde map waarin u uw configuratie hebt opgeslagen en voer de volgende opdrachten uit om de configuratie te compileren in een MOF-bestand:
. .\WebsiteTest.ps1
WebsiteTest
Hiermee wordt de volgende uitvoer gegenereerd:
Directory: C:\ConfigurationTest\WebsiteTest
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/13/2017 5:20 PM 2746 localhost.mof
De eerste regel maakt de configuratiefunctie beschikbaar in de console. De tweede regel voert de configuratie uit. Het resultaat is dat een nieuwe map met de naam WebsiteTest
wordt gemaakt als een submap van de huidige map. De WebsiteTest
map bevat een bestand met de naam localhost.mof
. Dit is het bestand dat vervolgens kan worden toegepast op het doelknooppunt.
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.
Notitie
Als u wilt toestaan dat DSC wordt uitgevoerd, moet Windows worden geconfigureerd voor het ontvangen van externe PowerShell-opdrachten, zelfs wanneer u een localhost
configuratie uitvoert. Als u uw omgeving eenvoudig correct wilt configureren, voert u uit Set-WsManQuickConfig -Force
in een PowerShell-terminal met verhoogde bevoegdheid.
Navigeer in een PowerShell-console naar dezelfde map waarin u uw configuratie hebt opgeslagen en voer de volgende opdracht uit:
Start-DscConfiguration .\WebsiteTest
De configuratie testen
U kunt de cmdlet Get-DscConfigurationStatus aanroepen om te zien of de configuratie is geslaagd.
U kunt de resultaten ook rechtstreeks testen, in dit geval door naar te http://localhost/
bladeren in een webbrowser. Als het goed is, ziet u de HTML-pagina 'Hallo wereld' die u als eerste stap in dit voorbeeld hebt gemaakt.
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.