Introduzione al gestore dell'estensione DSC (Desired State Configuration) di Azure

L'agente di macchine virtuali di Azure e le relative estensioni associate fanno parte dei servizi di infrastruttura di Microsoft Azure. Le estensioni di VM sono componenti software che estendono la funzionalità delle macchine virtuali e ne semplificano varie operazioni di gestione.

Nota

Prima di abilitare l'estensione DSC, è necessario sapere che è ora disponibile in anteprima una versione più recente di DSC, gestita da una funzionalità di Criteri di Azure denominata configurazione guest. La funzionalità di configurazione guest combina le funzionalità del gestore dell'estensione Desired State Configuration (DSC), del Automazione di Azure State Configuration e delle funzionalità più comunemente richieste dai commenti e suggerimenti dei clienti. La configurazione guest include anche il supporto di computer ibridi tramite server abilitati per Arc.

Il caso d'uso principale per l'estensione DSC (Azure Desired State Configuration) è il bootstrap di una macchina virtuale nel servizio Automazione di Azure State Configuration (DSC). Il servizio offre vantaggi che includono la gestione continua della configurazione della macchina virtuale e l'integrazione con altri strumenti operativi, ad esempio Monitoraggio di Azure. L'uso dell'estensione per registrare le macchine virtuali nel servizio offre una soluzione flessibile che funziona anche tra le sottoscrizioni di Azure.

È possibile usare l'estensione DSC in modo indipendente dal servizio Automation DSC. Tuttavia, verrà solo push di una configurazione nella macchina virtuale. Non sono disponibili report in corso, a parte quelli locali nella macchina virtuale.

Questo articolo fornisce informazioni relative a entrambi gli scenari: uso dell'estensione DSC per l'onboarding in Automazione e uso dell'estensione DSC come strumento per l'assegnazione di configurazioni a VM tramite Azure SDK.

Prerequisiti

  • Computer locale: per interagire con l'estensione della macchina virtuale di Azure, è necessario usare il portale di Azure o Azure PowerShell SDK.
  • Agente guest: la macchina virtuale di Azure configurata tramite l'estensione DSC deve essere un sistema operativo che supporta Windows Management Framework (WMF) 4.0 o versione successiva. Per l'elenco completo delle versioni dei sistemi operativi supportati, vedere la cronologia delle versioni dell'estensione DSC.

Termini e concetti

Questa guida presuppone che si abbia familiarità con i concetti seguenti:

  • Configurazione: documento di configurazione DSC.
  • Nodo: destinazione di una configurazione DSC. In questo documento node fa sempre riferimento a una macchina virtuale di Azure.
  • Dati di configurazione: file con estensione psd1 con i dati ambientali di una configurazione.

Architettura

L'estensione DSC di Azure usa il framework dell'agente VM di Azure per recapitare, applicare e generare report sulle configurazioni DSC in esecuzione nelle VM di Azure. L'estensione DSC accetta un documento di configurazione e un set di parametri. Se non viene fornito alcun file, uno script di configurazione predefinito viene incorporato con l'estensione. Lo script di configurazione predefinito viene usato solo per l'impostazione dei metadati in Gestione configurazione locale.

Alla prima chiamata, l'estensione installa una versione di WMF adottando la logica seguente:

  • Se il sistema operativo della macchina virtuale di Azure è Windows Server 2016, non viene eseguita alcuna azione. In Windows Server 2016 è già installata la versione più recente di PowerShell.
  • Se la proprietà wmfVersion è specificata, viene installata la versione di WMF corrispondente, a meno che tale versione non sia incompatibile con il sistema operativo della VM.
  • Se la proprietà wmfVersion non è specificata, viene installata la versione più recente applicabile di WMF.

L'installazione di WMF richiede un riavvio. Dopo il riavvio, l'estensione scarica il file ZIP eventualmente specificato nella proprietà modulesUrl. Se tale percorso si trova nell'archiviazione BLOB di Azure, è possibile specificare un token di firma di accesso condiviso nella proprietà sasToken per accedere al file. Dopo il .zip scaricato e decompresso, la funzione di configurazione definita in configurationFunction viene eseguita per generare un file mof(Managed Object Format) . L'estensione esegue quindi Start-DscConfiguration -Force usando il file con estensione mof generato, acquisisce l'output e lo scrive nel canale di stato di Azure.

Script di configurazione predefinito

L'estensione DSC di Azure include uno script di configurazione predefinito da usare per l'onboarding di una macchina virtuale nel servizio Automation DSC per Azure. I parametri dello script sono allineati con le proprietà configurabili di Gestione configurazione locale. Per i parametri dello script, vedere Script di configurazione predefinito in Estensione Desired State Configuration (DSC) con modelli di Azure Resource Manager. Per lo script completo, vedere il modello di avvio rapido di Azure in GitHub.

Informazioni per la registrazione con Automazione di Azure State Configuration (DSC)

Quando si usa l'estensione DSC per registrare un nodo con il State Configuration, è necessario impostare tre valori.

  • RegistrationUrl: indirizzo HTTPS dell'account Automazione di Azure
  • RegistrationKey: segreto condiviso usato per registrare i nodi con il servizio
  • NodeConfigurationName: nome della configurazione del nodo (MOF) di cui eseguire il pull dal servizio per configurare il ruolo del server

Queste informazioni possono essere visualizzate nel portale di Azure oppure è possibile usare PowerShell.

(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).Endpoint
(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).PrimaryKey

Per Il nome della configurazione del nodo, assicurarsi che la configurazione del nodo esista in Azure State Configuration. In caso contrario, la distribuzione dell'estensione restituirà un errore. Assicurarsi anche di usare il nome della configurazione del nodo e non la configurazione. Una configurazione viene definita in uno script usato per compilare la configurazione del nodo (file MOF). Il nome sarà sempre la configurazione seguita da un punto . e da un nome computer o da un nome computer localhost specifico.

Estensione DSC nei modelli di Resource Manager

Nella maggior parte degli scenari l'estensione DSC viene usata per lo più tramite i modelli di distribuzione Resource Manager. Per altre informazioni ed esempi su come includere l'estensione DSC nei modelli di distribuzione di Resource Manager, vedere Estensione Desired State Configuration (DSC) con modelli di Azure Resource Manager.

Cmdlet PowerShell dell'estensione DSC

I cmdlet PowerShell che vengono usati per la gestione dell'estensione DSC sono la scelta ottimale per gli scenari di risoluzione interattiva dei problemi e raccolta di informazioni. È possibile usare i cmdlet per creare pacchetti, pubblicare e monitorare le distribuzioni dell'estensione DSC. I cmdlet per l'estensione DSC non sono ancora aggiornati per funzionare con lo script di configurazione predefinito.

Il cmdlet Publish-AzVMDscConfiguration riceve un file di configurazione, lo analizza per cercare risorse DSC dipendenti e quindi crea un file con estensione zip. Il file ZIP contiene la configurazione e le risorse DSC necessarie per applicare la configurazione. Il cmdlet può anche creare il pacchetto in locale usando il parametro -OutputArchivePath. In alternativa, il cmdlet pubblica il file ZIP nell'archiviazione BLOB e quindi lo protegge con un token di firma di accesso condiviso.

Lo script di configurazione con estensione ps1 creato dal cmdlet è nel file ZIP nella radice della cartella di archiviazione. La cartella del modulo è posizionata nella cartella di archiviazione nelle risorse.

Il cmdlet Set-AzVMDscExtension inserisce le impostazioni necessarie per l'estensione DSC di PowerShell in un oggetto di configurazione di una macchina virtuale.

Il cmdlet Get-AzVMDscExtension recupera lo stato dell'estensione DSC di una macchina virtuale specifica.

Il cmdlet Get-AzVMDscExtensionStatus recupera lo stato della configurazione DSC applicata dal gestore dell'estensione DSC. Questa azione può essere eseguita su una singola VM o su un gruppo di VM.

Il cmdlet Remove-AzVMDscExtension rimuove il gestore dell'estensione da una macchina virtuale specifica. Questo cmdlet non rimuove la configurazione, non disinstalla WMF e non modifica le impostazioni applicate nella VM. Rimuove soltanto il gestore dell'estensione.

Informazioni importanti sui cmdlet dell'estensione DSC di Resource Manager:

  • I cmdlet di Azure Resource Manager sono sincroni,
  • I parametri ResourceGroupName, VMName, ArchiveStorageAccountName, Version e Location sono tutti obbligatori.
  • ArchiveResourceGroupName è un parametro facoltativo. Questo parametro può essere specificato quando l'account di archiviazione appartiene a un gruppo di risorse diverso da quello in cui viene creata la VM.
  • Usare l'opzione AutoUpdate per l'aggiornamento automatico del gestore dell'estensione alla versione più recente, quando disponibile. Questo parametro potrebbe causare il riavvio della macchina virtuale quando viene rilasciata una nuova versione di WMF.

Introduzione ai cmdlet

L'estensione DSC di Azure può usare documenti di configurazione DSC per configurare direttamente macchine virtuali di Azure durante la distribuzione. Questa operazione non determina tuttavia la registrazione del nodo in Automazione. Il nodo non è gestito centralmente.

Di seguito è riportato un semplice esempio di configurazione. Salvare la configurazione in locale come iisInstall.ps1.

configuration IISInstall
{
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

I comandi seguenti posizionano lo script iisInstall.ps1 nella macchina virtuale specificata. eseguono la configurazione e quindi inviano un report sullo stato.

$resourceGroup = 'dscVmDemo'
$vmName = 'myVM'
$storageName = 'demostorage'
#Publish the configuration script to user storage
Publish-AzVMDscConfiguration -ConfigurationPath .\iisInstall.ps1 -ResourceGroupName $resourceGroup -StorageAccountName $storageName -force
#Set the VM to run the DSC configuration
Set-AzVMDscExtension -Version '2.76' -ResourceGroupName $resourceGroup -VMName $vmName -ArchiveStorageAccountName $storageName -ArchiveBlobName 'iisInstall.ps1.zip' -AutoUpdate -ConfigurationName 'IISInstall'

Distribuzione dell'interfaccia della riga di comando di Azure

L'interfaccia della riga di comando di Azure può essere usata per distribuire l'estensione DSC in una macchina virtuale esistente.

Per una macchina virtuale che esegue Windows:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name DSC \
  --publisher Microsoft.Powershell \
  --version 2.77 --protected-settings '{}' \
  --settings '{}'

Per una macchina virtuale che esegue Linux:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name DSCForLinux \
  --publisher Microsoft.OSTCExtensions \
  --version 2.7 --protected-settings '{}' \
  --settings '{}'

Funzionalità del portale di Azure

Per configurare DSC nel portale:

  1. Selezionare una macchina virtuale.
  2. In Impostazioni selezionare Estensioni.
  3. Nella nuova pagina creata selezionare + Aggiungi e quindi PowerShell DSC (Desired State Configuration).
  4. Nella parte inferiore della pagina delle informazioni sulle estensioni, fare clic su Crea.

Il portale consente di raccogliere l'input seguente:

  • Configuration Modules or Script (Moduli o script di configurazione): questo campo è obbligatorio. Il modulo non è stato aggiornato per lo script di configurazione predefinito. I moduli e gli script di configurazione richiedono un file con estensione ps1 contenente uno script di configurazione oppure un file ZIP con uno script di configurazione con estensione ps1 nella directory radice. Se si usa un file ZIP, tutte le risorse dipendenti devono essere incluse nelle cartelle del modulo all'interno del file ZIP. È possibile creare il file con estensione zip con il cmdlet Publish-AzureVMDscConfiguration -OutputArchivePath incluso in Azure PowerShell SDK. Il file ZIP viene caricato nell'archiviazione BLOB dell'utente e protetto da un token di firma di accesso condiviso.

  • Nome completo del modulo di configurazione: è possibile includere più funzioni di configurazione in un file .ps1 file. Immettere il nome dello script di configurazione con estensione ps1 seguito da \ e dal nome della funzione di configurazione. Ad esempio, se lo script con estensione ps1 ha il nome configuration.ps1 e la configurazione è IisInstall, immettere configuration.ps1\IisInstall.

  • Configuration Arguments (Argomenti di configurazione): se la funzione di configurazione accetta argomenti, immetterli qui nel formato argumentName1=value1,argumentName2=value2. Questo è un formato diverso in cui vengono accettati gli argomenti di configurazione nei cmdlet di PowerShell o nei modelli di Resource Manager.

  • File PSD1 dei dati di configurazione: se la configurazione richiede un file di dati di configurazione in , usare questo campo per selezionare il file di dati e .psd1 caricarlo nell'archivio BLOB dell'utente. Il file di dati della configurazione è protetto da un token di firma di accesso condiviso nell'archiviazione BLOB.

  • WMF Version (Versione WMF): specifica la versione di Windows Management Framework (WMF) da installare nella macchina virtuale. Impostando questa proprietà su latest (più recente) verrà installata la versione più recente di WMF. Attualmente, gli unici valori possibili per questa proprietà sono 4.0, 5.0, 5.1 e latest. Questi valori possibili sono soggetti ad aggiornamenti. Il valore predefinito è latest.

  • Raccolta dati: determina se l'estensione raccoglierà dati di telemetria. Per altre informazioni, vedere Azure DSC extension data collection (Raccolta di dati dell'estensione DSC di Azure).

  • Versione: specifica la versione dell'estensione DSC da installare. Per informazioni sulle versioni, vedere Cronologia delle versioni dell'estensione DSC (Desired State Configuration).

  • Auto Upgrade Minor Version (Aggiornamento automatico versione secondaria): questo campo viene associato allo switch AutoUpdate nei cmdlet e abilita l'estensione per eseguire l'aggiornamento automatico alla versione più recente durante l'installazione. indicherà al gestore dell'estensione di usare la versione disponibile più recente e No imporrà l'installazione della Versione specificata. Non selezionare né No equivale alla selezione di No.

Log

I log per l'estensione vengono archiviati nel percorso seguente: C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\<version number>

Passaggi successivi