Estensione DSC di PowerShell
Nota
Prima di abilitare l'estensione DSC, si vuole sapere che una versione più recente di DSC è ora disponibile a livello generale, gestita da una funzionalità di Configurazione automatica di Azure denominata machine. La funzionalità di configurazione del computer combina le funzionalità del gestore dell'estensione DSC (Desired State Configuration), Automazione di Azure State Configuration e le funzionalità più comunemente richieste dal feedback dei clienti. La configurazione del computer include anche il supporto del computer ibrido tramite i server abilitati per Arc.
Panoramica
L'estensione DSC di PowerShell per Windows è pubblicata e supportata da Microsoft. L'estensione carica e applica una configurazione DSC di PowerShell in una macchina virtuale di Azure. L'estensione DSC esegue una chiamata in PowerShell DSC per applicare la configurazione DSC ricevuta nella VM. Questo documento descrive in dettaglio le piattaforme, le configurazioni e le opzioni di distribuzione supportate per l'estensione macchina virtuale DSC per Windows.
Prerequisiti
Sistema operativo
L'estensione DSC supporta i seguenti sistemi operativi
Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012R2, Windows Server 2012, Windows Server 2008 R2 SP1, Windows Client 7/8.1/10
Connettività Internet
L'estensione DSC per Windows richiede che la macchina virtuale di destinazione sia in grado di comunicare con Azure e il percorso del pacchetto di configurazione (.zip file) se è archiviato in una posizione esterna ad Azure.
Schema dell'estensione
Il JSON seguente illustra lo schema per la sezione delle impostazioni dell'estensione DSC in un modello di Azure Resource Manager.
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "Microsoft.Powershell.DSC",
"apiVersion": "2018-10-01",
"location": "<location>",
"properties": {
"publisher": "Microsoft.Powershell",
"type": "DSC",
"typeHandlerVersion": "2.77",
"autoUpgradeMinorVersion": true,
"settings": {
"wmfVersion": "latest",
"configuration": {
"url": "http://validURLToConfigLocation",
"script": "ConfigurationScript.ps1",
"function": "ConfigurationFunction"
},
"configurationArguments": {
"argument1": "Value1",
"argument2": "Value2"
},
"configurationData": {
"url": "https://foo.psd1"
},
"privacy": {
"dataCollection": "enable"
},
"advancedOptions": {
"forcePullAndApply": false,
"downloadMappings": {
"specificDependencyKey": "https://myCustomDependencyLocation"
}
}
},
"protectedSettings": {
"configurationArguments": {
"parameterOfTypePSCredential1": {
"userName": "UsernameValue1",
"password": "PasswordValue1"
},
"parameterOfTypePSCredential2": {
"userName": "UsernameValue2",
"password": "PasswordValue2"
}
},
"configurationUrlSasToken": "?g!bber1sht0k3n",
"configurationDataUrlSasToken": "?dataAcC355T0k3N"
}
}
}
Valori delle proprietà
Nome | Valore/Esempio | Tipo di dati |
---|---|---|
apiVersion | 2018-10-01 | data |
publisher | Microsoft.Powershell.DSC | string |
type | DSC | string |
typeHandlerVersion | 2.77 | int |
Valori delle proprietà delle impostazioni
Nome | Tipo di dati | Descrizione |
---|---|---|
settings.wmfVersion | string | Specifica la versione di Windows Management Framework da installare nella macchina virtuale. Se si imposta questa proprietà su "più recente", verrà installata la versione più recente di WMF. Gli unici valori attuali possibili per questa proprietà sono "4.0", "5.0" e "più recente". Questi valori possibili sono soggetti ad aggiornamenti. Il valore predefinito è "più recente". |
settings.configuration.url | string | Specifica il percorso URL da cui scaricare il file ZIP della configurazione DSC. Se l'URL specificato richiede un token di firma di accesso condiviso per accedere, sarà necessario impostare la proprietà protectedSettings.configurationUrlSasToken sul valore del token di firma di accesso condiviso. Questa proprietà è obbligatoria se settings.configuration.script e/o settings.configuration.function sono definiti. |
settings.configuration.script | string | Specifica il nome del file di script che contiene la definizione della configurazione DSC. Questo script deve trovarsi nella cartella radice del file ZIP scaricato dall'URL specificato dalla proprietà configuration.url. Questa proprietà è obbligatoria se settings.configuration.url e/o settings.configuration.script sono definiti. |
settings.configuration.function | string | Specifica il nome della configurazione DSC. La configurazione indicata deve essere contenuta nello script definito da configuration.script. Questa proprietà è obbligatoria se settings.configuration.url e/o settings.configuration.function sono definiti. |
settings.configurationArguments | Raccolta | Definisce i parametri da passare alla configurazione DSC. Questa proprietà non verrà crittografata. |
settings.configurationData.url | string | Specifica l'URL da cui scaricare il file di dati di configurazione con estensione pds1 da usare come input per la configurazione DSC. Se l'URL specificato richiede un token di firma di accesso condiviso per accedere, sarà necessario impostare la proprietà protectedSettings.configurationDataUrlSasToken sul valore del token di firma di accesso condiviso. |
settings.privacy.dataEnabled | string | Abilita o disabilita la raccolta di dati di telemetria. Gli unici valori possibili per questa proprietà sono "Abilita", "Disabilita", '' o $null. Lasciando questa proprietà vuota o con valore null verrà abilitata la raccolta di dati di telemetria. |
settings.advancedOptions.forcePullAndApply | Bool | Questa impostazione è progettata per migliorare l'esperienza di utilizzo dell'estensione per registrare i nodi con Automazione di Azure DSC. Se il valore è $true , l'estensione attenderà la prima esecuzione della configurazione estratta dal servizio prima di restituire l'esito positivo/negativo. Se il valore è impostato su $false, lo stato restituito dall'estensione farà riferimento solo a se il nodo è stato registrato correttamente con Automazione di Azure State Configuration e la configurazione del nodo non verrà eseguita durante la registrazione. |
settings.advancedOptions.downloadMappings | Raccolta | Definisce posizioni alternative per scaricare le dipendenze, ad esempio WMF e .NET |
Valori di proprietà delle impostazioni protette
Nome | Tipo di dati | Descrizione |
---|---|---|
protectedSettings.configurationArguments | string | Definisce i parametri da passare alla configurazione DSC. Questa proprietà verrà crittografata. |
protectedSettings.configurationUrlSasToken | string | Specifica il token di firma di accesso condiviso per accedere all'URL definito da configuration.url. Questa proprietà verrà crittografata. |
protectedSettings.configurationDataUrlSasToken | string | Specifica il token di firma di accesso condiviso per accedere all'URL definito da configurationData.url. Questa proprietà verrà crittografata. |
Distribuzione del modello
Le estensioni macchina virtuale di Azure possono essere distribuite con i modelli di Azure Resource Manager. I modelli rappresentano la scelta migliore quando si distribuiscono una o più macchine virtuali per cui è necessaria una configurazione post-distribuzione. Un modello di Resource Manager di esempio che include l'estensione DSC per Windows è disponibile nella raccolta di avvio rapido di Azure.
Risoluzione dei problemi e supporto
Risoluzione dei problemi
I dati sullo stato delle distribuzioni dell'estensione possono essere recuperati nel portale di Azure e tramite l'interfaccia della riga di comando di Azure. Per visualizzare lo stato di distribuzione delle estensioni per una determinata VM, eseguire il comando seguente nell'interfaccia della riga di comando di Azure.
az vm extension list --resource-group myResourceGroup --vm-name myVM -o table
Il pacchetto di estensione viene scaricato e distribuito in questa posizione nella macchina virtuale di Azure
C:\Packages\Plugins\{Extension_Name}\{Extension_Version}
Il file di stato dell'estensione contiene lo stato secondario e i codici di esito positivo/di errore dello stato insieme all'errore dettagliato e alla descrizione per ogni esecuzione dell'estensione.
C:\Packages\Plugins\{Extension_Name}\{Extension_Version}\Status\{0}.Status -> {0} being the sequence number
I log di output dell'estensione vengono registrati nella directory seguente:
C:\WindowsAzure\Logs\Plugins\{Extension_Name}\{Extension_Version}
Codici di errore e relativi significati
Codice di errore | significato | Azione possibile |
---|---|---|
1000 | Errore generico | Il messaggio per questo errore viene fornito dall'eccezione specifica nei log di estensione |
52 | Errore di installazione dell'estensione | Il messaggio per questo errore viene fornito dall'eccezione specifica |
1002 | Errore di installazione WMF | Si è verificato un errore durante l'installazione di WMF. |
1004 | Pacchetto Zip non valido | Zip non valido; errore durante la decompressione del file zip |
1100 | Errore argomento | Indica un problema nell'input fornito dall'utente. Il messaggio per l'errore viene fornito dall'eccezione specifica |
Supporto tecnico
Per ricevere assistenza in relazione a qualsiasi punto di questo articolo, contattare gli esperti di Azure nei forum MSDN e Stack Overflow relativi ad Azure. In alternativa, è possibile archiviare un evento imprevisto di supporto tecnico di Azure. Accedere al sito del supporto di Azure e selezionare l'opzione desiderata per ottenere supporto. Per informazioni sull'uso del supporto di Azure, leggere le Domande frequenti sul supporto di Azure.