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