Dela via


Skriva, kompilera och tillämpa en konfiguration

Gäller för: Windows PowerShell 4.0, Windows PowerShell 5.0

Den här övningen går igenom hur du skapar och tillämpar en DSC-konfiguration (Desired State Configuration) 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 kommer att säkerställa att det finns en "HelloWorld.txt" -fil på din lokala dator. 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 Översikt över önskad tillståndskonfiguration för utvecklare.

Kravspecifikation

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, se till att placera varje modul på 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 målnoden 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 kunna 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 blocket Node . För att kunna köra konfigurationen måste du punktkälla skriptet HelloWorld.ps1 i det aktuella omfånget. Mer information finns i about_Scripts.

Punktkälla ditt HelloWorld.ps1 skript genom att skriva in sökvägen där du lagrade det, efter ( . punkt, blanksteg). Du kan sedan 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 gö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 katalogsökvägen där du localhost.mof lagras i parametern Sökväg . 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 den hittar på det computername som anges av filnamnet ("localhost", "server01", "dc-02" osv.).

Anmärkning

-Wait Om parametern inte anges Start-DSCConfiguration skapas ett bakgrundsjobb för att utföra åtgärden. Om du anger -Verbose parametern kan du titta på utförliga utdata från åtgärden. -Waitoch -Verbose ä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 verifiera innehållet med cmdleten Get-Content .

Du kan också testa den aktuella statusen med hjälp av 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 att konfigurationen tillämpas igen kan du ta bort textfilen som skapats av konfigurationen. Använd cmdleten Start-DSCConfiguration med parametern -UseExisting . Parametern -UseExisting instruerar Start-DSCConfiguration att tillämpa filen "current.mof" igen, som representerar den senast tillämpade konfigurationen.

Remove-Item -Path C:\Temp\HelloWorld.txt

Nästa steg