Condividi tramite


about_DesiredStateConfiguration

Aggiornamento: maggio 2014

Si applica a: Windows PowerShell 4.0

ARGOMENTO

about_Desired_State_Configuration

DESCRIZIONE BREVE

In questo articolo viene fornita una breve introduzione alla funzionalità di configurazione dello stato desiderato (DSC, Desired State Configuration) di Windows PowerShell®.

DESCRIZIONE LUNGA

DSC è una piattaforma di gestione in Windows PowerShell. Consente la distribuzione e la gestione dei dati di configurazione per i servizi software e per l'ambiente in cui questi servizi vengono eseguiti. DSC offre un set di estensioni del linguaggio di Windows PowerShell, nuovi cmdlet e risorse che è possibile usare per specificare in modo dichiarativo come si desidera venga configurato lo stato dell'ambiente software.

DSC è stato introdotto in Windows PowerShell 4.0.

Per informazioni dettagliate su DSC, vedere "Configurazione dello stato desiderato di Windows PowerShell Desired State Configuration" nella Libreria TechNet all'indirizzo https://go.microsoft.com/fwlink/?LinkId=311940.

USO DI DSC

Per usare DSC per configurare l'ambiente, definire prima un blocco di script di Windows PowerShellusando la parola chiave di configurazione, seguita da un identificatore, che a sua volta è seguito dalla coppia di parentesi graffe che delimitano il blocco. All'interno del blocco di configurazione è possibile definire i blocchi di nodo che specificano lo stato della configurazione desiderata per ogni nodo (computer) nell'ambiente. Un blocco di nodo inizia con la parola chiave del nodo, seguita dal nome del computer di destinazione, che può essere una variabile. Dopo il nome del computer, vengono le parentesi graffe che delimitano il blocco del nodo. All'interno del blocco del nodo, è possibile definire i blocchi di risorse per configurare le risorse specifiche. Un blocco di risorsa inizia con il nome del tipo di risorsa, seguito dall'identificatore che si desidera specificare per tale blocco, seguito da parentesi graffe che delimitano il blocco, come illustrato nell'esempio seguente.

Configuration MyWebConfig
    {
       # Parameters are optional
       param ($MachineName, $WebsiteFilePath)

       # A Configuration block can have one or more Node blocks
       Node $MachineName
       {
          # Next, specify one or more resource blocks
          # WindowsFeature is one of the resources you can use in a Node block
          # This example ensures the Web Server (IIS) role is installed
          WindowsFeature IIS
          {
             # To ensure that the role is not installed, set Ensure to \"Absent\"
              Ensure = "Present" 
              Name = "Web-Server" # Use the Name property from Get-WindowsFeature  
          }

          # You can use the File resource to create files and folders
          # \"WebDirectory\" is the name you want to use to refer to this instance
          File WebDirectory
          {
             Ensure = "Present"  # You can also set Ensure to "Absent“
             Type = "Directory“ # Default is “File”
             Recurse = $true
             SourcePath = $WebsiteFilePath
             DestinationPath = "C:\inetpub\wwwroot"
            
             # Ensure that the IIS block is successfully run first before
             # configuring this resource
             Requires = "[WindowsFeature]IIS"  # Use Requires for dependencies     
          }
       }
    }

Per creare una configurazione, richiamare il blocco di configurazione nello stesso modo in cui viene richiamata una funzione di Windows PowerShell, superando i parametri previsti che potrebbero essere stati definiti (due nell'esempio precedente). Ad esempio, in questo caso:

    MyWebConfig -MachineName "TestMachine" –WebsiteFilePath "\\filesrv\WebFiles" `
         -OutputPath "C:\Windows\system32\temp" # OutputPath is optional

Viene generato un file MOF per ogni nodo nel percorso specificato. I file MOF specificano la configurazione desiderata per ogni nodo. Successivamente, usare il cmdlet seguente per analizzare i file MOF di configurazione, inviare a ogni nodo la configurazione corrispondente e applicare queste configurazioni.

    Start-DscConfiguration –Verbose -Wait -Path "C:\Windows\system32\temp"

USO DI DSC PER GESTIRE LO STATO DI CONFIGURAZIONE

Con DSC, la configurazione è idempotente. Ciò significa che se si usa DSC per applicare più volte la stessa configurazione, lo stato di configurazione risultante sarà sempre lo stesso. Per questo motivo, se si ritiene che tutti i nodi nell'ambiente in uso potrebbero essere sfasati rispetto allo stato di configurazione desiderato, è possibile applicare di nuovo la stessa configurazione DSC per riportarli allo stato desiderato. Non è necessario modificare lo script di configurazione per soddisfare solo le risorse il cui stato è sfasato rispetto allo stato desiderato.

Nell'esempio seguente viene illustrato come è possibile verificare se lo stato di configurazione effettivo in un determinato nodo è sfasato rispetto all'ultima configurazione DSC applicata nel nodo. In questo esempio viene controllata la configurazione del computer locale.

    $session = New-CimSession -ComputerName "localhost"
    Test-DscConfiguration -CimSession $session 

RISORSE DSC INCORPORATE

DSC offre il seguente set di risorse incorporate che è possibile usare in uno script di configurazione: Registry, Script, Archive, File, WindowsFeature, Package, Environment, Group, User, Log, Service e WindowsProcess. Nell'esempio precedente viene illustrato come usare le risorse File e WindowsFeature. Per visualizzare tutte le proprietà che è possibile usare con una determinata risorsa, posizionare il cursore sulla parola chiave relativa alla risorsa (ad esempio, File) all'interno dello script di configurazione in Windows PowerShell ISE, tenere premuto CTRL, quindi premere la BARRA SPAZIATRICE.

VEDERE ANCHE

"Configurazione dello stato desiderato di Windows PowerShell"

(https://go.microsoft.com/fwlink/?LinkId=311940)