Scrivere, compilare e applicare una configurazioneWrite, Compile, and Apply a Configuration

Si applica a: Windows PowerShell 4.0, Windows PowerShell 5.0Applies To: Windows PowerShell 4.0, Windows PowerShell 5.0

Questo esercizio illustra nei dettagli tutti i passaggi per creare e applicare una configurazione DSC (Desired State Configuration).This exercise walks through creating and applying a Desired State Configuration (DSC) configuration from start to finish. Nell'esempio seguente si apprenderà come scrivere e applicare una configurazione molto semplice.In the following example, you will learn how to write and apply a very simple Configuration. La configurazione garantirà la presenza di un file "HelloWorld.txt" nel computer locale.The Configuration will ensure a "HelloWorld.txt" file exists on your local machine. Se si elimina il file, DSC lo crea nuovamente al successivo aggiornamento.If you delete the file, DSC will recreate it the next time it updates.

Per una panoramica di DSC e del relativo funzionamento, vedere Panoramica di DSC (Desired State Configuration) per sviluppatori.For an overview of what DSC is and how it works, see Desired State Configuration Overview for Developers.

RequisitiRequirements

Per eseguire questo esempio, è necessario un computer che esegue PowerShell 4.0 o versione successiva.To run this example, you will need a computer running PowerShell 4.0 or later.

Scrivere la configurazioneWrite the configuration

Una configurazione DSC è una funzione speciale di PowerShell che definisce come si vogliono configurare uno o più computer di destinazione (nodi).A DSC Configuration is a special PowerShell function that defines how you want to configure one or more target computers (Nodes).

In PowerShell ISE o altri editor di PowerShell digitare quanto segue:In the PowerShell ISE, or other PowerShell editor, type the following:

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!"
        }
    }
}

Importante

Negli scenari più avanzati in cui è necessario importare più moduli per poter usare numerose risorse DSC nella stessa configurazione, assicurarsi di inserire ogni modulo in una riga separata usando Import-DscResource.In more advanced scenarios where multiple modules need to be imported so you can work with many DSC Resources in the same configuration, make sure to put each module in a separate line using Import-DscResource. Questa operazione è più semplice da gestire nel controllo del codice sorgente ed è richiesta quando si usa DSC in State Configuration di Azure.This is easier to maintain in source control and required when working with DSC in Azure State Configuration.

 Configuration HelloWorld {

  # Import the module that contains the File resource.
  Import-DscResource -ModuleName PsDesiredStateConfiguration
  Import-DscResource -ModuleName xWebAdministration

Salvare il file con nome "HelloWorld.ps1".Save the file as "HelloWorld.ps1".

La definizione di una configurazione è simile a definizione di una funzione.Defining a Configuration is like defining a Function. Il blocco Node specifica il nodo di destinazione da configurare, in questo caso localhost.The Node block specifies the target node to be configured, in this case localhost.

La configurazione chiama un'unica risorsa, la risorsa File.The configuration calls one resources, the File resource. Le risorse si occupano di assicurarsi che il nodo di destinazione sia nello stato definito dalla configurazione.Resources do the work of ensuring that the target node is in the state defined by the configuration.

Compilare la configurazioneCompile the configuration

Per applicare una configurazione DSC a un nodo, è prima necessario compilarla in un file MOF.For a DSC configuration to be applied to a node, it must first be compiled into a MOF file. L'esecuzione della configurazione, come una funzione, compila un unico file .mof per ogni nodo definito dal blocco Node.Running the configuration, like a function, will compile one .mof file for every Node defined by the Node block. Per eseguire la configurazione, è necessario usare il dot sourcing per lo script HelloWorld.ps1 nell'ambito corrente.In order to run the configuration, you need to dot source your HelloWorld.ps1 script into the current scope. Per altre informazioni, vedere about_Scripts.For more information, see about_Scripts.

Usare il dot sourcing per lo script HelloWorld.ps1 digitando il percorso in cui è archiviato dopo . (punto, spazio).Dot source your HelloWorld.ps1 script by typing in the path where you stored it, after the . (dot, space). È quindi possibile eseguire la configurazione chiamandola come una funzione.You may then, run your configuration by calling it like a function. È anche possibile richiamare la funzione di configurazione nella parte finale dello script in modo che non sia necessario eseguire il dot sourcing.You could also invoke the configuration function at the bottom of the script so that you don't need to dot-source.

. C:\Scripts\HelloWorld.ps1
HelloWorld

Verrà generato l'output seguente:This generates the following output:

Directory: C:\Scripts\HelloWorld


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        3/13/2017   5:20 PM           2746 localhost.mof

Applicare la configurazioneApply the configuration

Ora che è disponibile il file MOF compilato, è possibile applicare la configurazione al nodo di destinazione, in questo caso il computer locale, chiamando il cmdlet Start-DscConfiguration.Now that you have the compiled MOF, you can apply the configuration to the target node (in this case, the local computer) by calling the Start-DscConfiguration cmdlet.

Il cmdlet Start-DscConfiguration indica a Gestione configurazione locale, il motore di DSC, di applicare la configurazione.The Start-DscConfiguration cmdlet tells the Local Configuration Manager (LCM), the engine of DSC, to apply the configuration. Gestione configurazione locale si occupa di chiamare le risorse DSC per applicare la configurazione.The LCM does the work of calling the DSC resources to apply the configuration.

Usare il codice seguente per eseguire il cmdlet Start-DSCConfiguration.Use the code below to execute the Start-DSCConfiguration cmdlet. Specificare il percorso della directory in cui è archiviato il file localhost.mof nel parametro Path.Specify the directory path where your localhost.mof is stored to the Path parameter. Il cmdlet Start-DSCConfiguration ricerca nella directory specificata i file <computername>.mof.The Start-DSCConfiguration cmdlet looks through the directory specified for any <computername>.mof files. Il cmdlet Start-DSCConfiguration tenta di applicare ogni file .mof trovato al computername specificato dal nome file ("localhost", "server01", "dc-02" e così via).The Start-DSCConfiguration cmdlet attempts to apply each .mof file it finds to the computername specified by the filename ("localhost", "server01", "dc-02", etc.).

Nota

Se il parametro -Wait non è specificato, Start-DSCConfiguration crea un processo in background per eseguire l'operazione.If the -Wait parameter is not specified, Start-DSCConfiguration creates a background job to perform the operation. La specifica del parametro -Verbose consente di controllare l'output dettagliato dell'operazione.Specifying the -Verbose parameter allows you to watch the Verbose output of the operation. -Wait e -Verbose sono entrambi parametri facoltativi.-Wait, and -Verbose are both optional parameters.

Start-DscConfiguration -Path C:\Scripts\HelloWorld -Verbose -Wait

Testare la configurazioneTest the configuration

Al termine del cmdlet Start-DSCConfiguration, viene visualizzato un file HelloWorld.txt nel percorso specificato.Once the Start-DSCConfiguration cmdlet is complete, you should see a HelloWorld.txt file in the location you specified. È possibile verificare il contenuto con il cmdlet Get-Content.You can verify the contents with the Get-Content cmdlet.

È anche possibile testare lo stato corrente usando Test-DSCConfiguration.You can also test the current status using Test-DSCConfiguration.

L'output sarà True se il nodo è attualmente conforme alla configurazione applicata.The output should be True if the Node is currently compliant with the applied Configuration.

Test-DSCConfiguration
True
Get-Content -Path C:\Temp\HelloWorld.txt
Hello World from DSC!

Riapplicazione della configurazioneRe-applying the configuration

Per applicare nuovamente la configurazione, è possibile rimuovere il file di testo creato dalla configurazione.To see your configuration get applied again, you can remove the text file created by your Configuration. Quindi usare il cmdlet Start-DSCConfiguration con il parametro -UseExisting.The use the Start-DSCConfiguration cmdlet with the -UseExisting parameter. Il parametro -UseExisting indica a Start-DSCConfiguration di riapplicare il file "current.mof" che rappresenta l'ultima configurazione applicata correttamente.The -UseExisting parameter instructs Start-DSCConfiguration to re-apply the "current.mof" file, which represents the most recently successfully applied configuration.

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

Passaggi successiviNext steps

  • Ulteriori informazioni sulle configurazioni DSC sono disponibili in Configurazioni DSC.Find out more about DSC configurations at DSC configurations.
  • Per informazioni sulle risorse DSC disponibili e su come creare risorse DSC personalizzate, vedere Risorse DSC.See what DSC resources are available, and how to create custom DSC resources at DSC resources.
  • Le configurazioni e le risorse DSC sono disponibili in PowerShell Gallery.Find DSC configurations and resources in the PowerShell Gallery.