about_DesiredStateConfiguration
DESCRIZIONE BREVE
Viene fornita una breve introduzione alla funzionalità Desired State Configuration (DSC) di PowerShell.
DESCRIZIONE LUNGA
DSC è una piattaforma di gestione in PowerShell che consente la distribuzione e la gestione dei dati di configurazione per i servizi software e la gestione dell'ambiente in cui vengono eseguiti questi servizi.
DSC offre un set di estensioni del linguaggio di PowerShell, nuovi cmdlet e risorse che è possibile usare per specificare in modo dichiarativo la modalità di configurazione dello stato dell'ambiente software. Consente inoltre di mantenere e gestire le configurazioni esistenti.
DSC è stato introdotto in PowerShell 4.0.
Per informazioni dettagliate su DSC, vedere Panoramica di PowerShell Desired State Configuration nella libreria TechNet.
SVILUPPO DI RISORSE DSC CON CLASSI
A partire da PowerShell 5.0, è possibile sviluppare risorse DSC usando le classi . Per altre informazioni, vedere about_Classes e Scrittura di una risorsa DSC personalizzata con classi di PowerShell in Microsoft TechNet.
USO DI DSC
Per usare DSC per configurare l'ambiente, definire innanzitutto un blocco di script di PowerShell usando la parola chiave Configuration, seguita da un identificatore, seguito a sua volta dalla coppia di parentesi graffe che delimitano il blocco. All'interno del blocco di configurazione è possibile definire blocchi di nodo che specificano lo stato di configurazione desiderato per ogni nodo (computer) nell'ambiente. Un blocco di nodi inizia con la parola chiave Node, seguita dal nome del computer di destinazione, che può essere una variabile. Dopo il nome del computer, venire le parentesi graffe che delimitano il blocco di nodi. All'interno del blocco di nodi è possibile definire blocchi di risorse per configurare risorse specifiche. Un blocco di risorse inizia con il nome del tipo della risorsa, seguito dall'identificatore che si vuole specificare per tale blocco, seguito dalle 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
DependsOn = "[WindowsFeature]IIS" # Use for dependencies
}
}
}
Per creare una configurazione, richiamare il blocco Di configurazione nello stesso modo in cui si richiama una funzione di PowerShell, passando eventuali parametri previsti definiti (due nell'esempio precedente). Ad esempio, in questo caso:
MyWebConfig -MachineName "TestMachine" -WebsiteFilePath `
"\\filesrv\WebFiles" -OutputPath "C:\Windows\system32\temp"
# OutputPath is optional
Verrà generato un file MOF per nodo nel percorso specificato. Questi file MOF specificano la configurazione desiderata per ogni nodo. Usare quindi il cmdlet seguente per analizzare i file MOF di configurazione, inviare ogni nodo alla configurazione corrispondente e applicare tali configurazioni. Si noti che non è necessario creare un file MOF separato per le risorse DSC basate su classi.
Start-DscConfiguration -Verbose -Wait -Path "C:\Windows\system32\temp"
USO DI DSC PER MANTENERE LO STATO DI CONFIGURAZIONE
Con DSC, la configurazione è idempotente. Ciò significa che se si usa DSC per applicare la stessa configurazione più volte, lo stato di configurazione risultante sarà sempre lo stesso. Per questo motivo, se si sospetta che tutti i nodi nell'ambiente possano essersi allontanati dallo stato desiderato della configurazione, è possibile applicare di nuovo la stessa configurazione DSC per riportarli allo stato desiderato. Non è necessario modificare lo script di configurazione per gestire solo le risorse il cui stato è stato deviato dallo stato desiderato.
Nell'esempio seguente viene illustrato come verificare se lo stato effettivo della configurazione in un determinato nodo è stato allontanato dall'ultima configurazione DSC applicato nel nodo. In questo esempio viene controllata la configurazione del computer locale.
$session = New-CimSession -ComputerName "localhost"
Test-DscConfiguration -CimSession $session
RISORSE DSC PREDEFINITE
È possibile usare le risorse predefinite seguenti negli script di configurazione:
Nome | Proprietà |
---|---|
File | {DestinationPath, Attributes, Checksum, Content...} |
Archiviazione | {Destination, Path, Checksum, Credential...} |
Ambiente | {Name, DependsOn, Ensure, Path...} |
Raggruppare | {GroupName, Credential, DependsOn, Description...} |
Log | {Message, DependsOn, PsDscRunAsCredential} |
Pacchetto | {Name, Path, ProductId, Arguments...} |
Registro | {Key, ValueName, DependsOn, Ensure...} |
Script | {GetScript, SetScript, TestScript, Credential...} |
Servizio | {Name, BuiltInAccount, Credential, Dependencies...} |
Utente | {UserName, DependsOn, Description, Disabled...} |
WaitForAll | {NodeName, ResourceName, DependsOn, PsDscRunAsC...} |
WaitForAny | {NodeName, ResourceName, DependsOn, PsDscRunAsC...} |
WaitForSome | {NodeCount, NodeName, ResourceName, DependsOn...} |
WindowsFeature | {Name, Credential, DependsOn, Ensure...} |
WindowsOptionalFeature | {Name, DependsOn, Ensure, LogLevel...} |
WindowsProcess | {Arguments, Path, Credential, DependsOn...} |
Per ottenere un elenco delle risorse DSC disponibili nel sistema, eseguire il cmdlet Get-DscResource.
Nell'esempio riportato in questo argomento viene illustrato come usare le risorse File e WindowsFeature. Per visualizzare tutte le proprietà che è possibile usare con una risorsa, inserire il cursore nella parola chiave della risorsa (ad esempio File) all'interno dello script di configurazione in PowerShell ISE, tenere premuto CTRL e quindi premere BARRA SPAZIATRICE.
ALTRE RISORSE
È possibile scaricare, installare e ottenere informazioni su molte altre risorse DSC disponibili create dalla community degli utenti di PowerShell e DSC e da Microsoft. Visitare il PowerShell Gallery per esplorare e ottenere informazioni sulle risorse DSC disponibili.
VEDERE ANCHE
Panoramica di PowerShell Desired State Configuration
Risorse di PowerShell Desired State Configuration predefinite
Creare risorse personalizzate di PowerShell Desired State Configuration