Condividi tramite


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

Nota

Prima di abilitare l'estensione DSC, è necessario sapere che una versione più recente di DSC è ora disponibile a livello generale, gestita da una funzionalità di Criteri di Azure denominata Configurazione macchina di Azure. Il servizio Configurazione macchina di Azure combina le funzionalità dell'estensione DSC, di State Configuration di Automazione di Azure e le funzionalità più comunemente richieste dai commenti e suggerimenti dei clienti. Configurazione macchina di Azure include anche il supporto del computer ibrido tramite i server abilitati per Arc.

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

L'uso principale per l'estensione DSC (Desired State Configuration) di Azure per Windows PowerShell consiste nell'eseguire il bootstrap di una macchina virtuale nel servizio State Configuration (DSC) di Automazione di Azure. Questo servizio offre vantaggi che includono la gestione continuativa della configurazione della macchina virtuale e l'integrazione con altri strumenti operativi, ad esempio Monitoraggio di Azure. È possibile usare l'estensione per registrare le macchine virtuali nel servizio e ottenere una soluzione flessibile che funziona tra le sottoscrizioni di Azure.

È possibile eseguire l'estensione DSC indipendentemente dal servizio Automation DSC, ma questo metodo esegue solo il push di una configurazione nella macchina virtuale. Non è disponibile alcuna creazione di report in corso, diversa da quella locale nella macchina virtuale. Prima di abilitare l'estensione DSC, esaminare le versioni DSC disponibili e scegliere quella che supporta i requisiti di configurazione.

Questo articolo descrive come usare l'estensione DSC per l'onboarding di Automazione o come strumento per assegnare configurazioni alle macchine virtuali con Azure SDK.

Versioni DSC disponibili

Per l'implementazione sono disponibili diverse versioni di Desired State Configuration. Prima di abilitare l'estensione DSC, scegliere la versione DSC che supporti al meglio la configurazione e gli obiettivi aziendali.

Versione Disponibilità Descrizione
2.0 Disponibilità generale Desired State Configuration 2.0 è supportato per l'uso con la funzionalità Configurazione macchina di Gestione automatica di Azure. La funzionalità di configurazione del computer combina le funzionalità del gestore dell'estensione DSC, la configurazione dello stato di Automazione di Azure e le funzionalità più comunemente richieste dai commenti e suggerimenti dei clienti. La configurazione del computer include anche il supporto del computer ibrido tramite i server abilitati per Arc.
1.1 Disponibilità generale Se l'implementazione non usa la funzionalità di configurazione del computer di gestione automatica di Azure, è consigliabile scegliere Desired State Configuration 1.1. Per altre informazioni, vedere PSDesiredStateConfiguration v1.1.
3.0 Anteprima pubblica Desired State Configuration 3.0 è disponibile nella versione beta pubblica. Questa versione deve essere usata solo con Configurazione macchina di Azure o per gli ambienti non di produzione per testare la migrazione da Desired State Configuration 1.1.

Prerequisiti

  • Computer locale: per interagire con l'estensione Azure DSC, è necessario usare il portale di Azure o Azure PowerShell SDK nel computer locale.

  • Agente guest: la macchina virtuale di Azure preparata 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 Azure DSC.

Termini e concetti

Questo articolo presuppone familiarità con i concetti seguenti:

  • Configurazione fa riferimento a un documento di configurazione DSC.

  • Nodo identifica una destinazione per una configurazione DSC. In questo articolo, nodo fa sempre riferimento a una macchina virtuale di Azure.

  • I dati di configurazione vengono archiviati in un file di formato DSC di PowerShell (con estensione psd1) con dati ambientali per una configurazione.

Architettura

L'estensione Azure DSC usa il framework dell'estensione 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 viene specificata la proprietà wmfVersion, viene installata la versione specificata di WMF, a meno che non sia incompatibile con il sistema operativo nella macchina virtuale.

  • Se la proprietà wmfVersion non è specificata, viene installata la versione più recente applicabile di WMF.

Il processo di 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 aver scaricato e decompresso il .zip, la funzione di configurazione definita in configurationFunction viene eseguita per generare un file MOF (Managed Object Format). L'estensione esegue quindi il comando Start-DscConfiguration -Force usando il file MOF generato. acquisisce l'output e lo scrive nel canale di stato di Azure.

Script di configurazione predefinito

L'estensione Azure DSC include uno script di configurazione predefinito da usare per l'onboarding di una macchina virtuale nel servizio State Configuration di Automazione di 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 (ARM). Per lo script completo, vedere il modello di avvio rapido di Azure in GitHub.

Registrazione di State Configuration di Automazione di Azure

Quando si usa l'estensione Azure DSC per registrare un nodo con il servizio State Configuration di Automazione di Azure, si specificano i valori seguenti:

  • RegistrationUrl: indirizzo https dell'account di 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. Il valore è il nome della configurazione del nodo e non il nome della configurazione.

È possibile raccogliere questi valori dal portale di Azure oppure eseguire i comandi seguenti in Windows PowerShell:

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

Nome della configurazione del nodo

Per il parametro NodeConfigurationName, assicurarsi di specificare il nome della configurazione del nodo e non la configurazione stessa.

La configurazione viene definita in uno script usato per compilare la configurazione del nodo (file MOF). Il nome della configurazione del nodo è sempre il nome della configurazione seguito da un punto . e da localhost o da un nome computer specifico.

Avviso

Assicurarsi che la configurazione del nodo esista in State Configuration di Automazione di Azure. Se questo valore non esiste, la distribuzione dell'estensione restituisce un errore.

Distribuzione di modelli di Resource Manager

L'approccio più comune per la distribuzione dell'estensione DSC consiste nell'usare i modelli di Azure 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 con modelli di Azure Resource Manager.

Distribuzione dei cmdlet PowerShell

I cmdlet di PowerShell per la gestione dell'estensione DSC sono ideali per scenari interattivi di risoluzione 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 attualmente aggiornati per funzionare con lo script di configurazione predefinito.

Ecco alcuni dei cmdlet di PowerShell disponibili:

  • 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 di PowerShell (ps1) creato dal cmdlet si trova 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. Tenere presente che questo cmdlet non rimuove la configurazione, non disinstalla WMF e non modifica le impostazioni applicate nella macchina virtuale. Il cmdlet rimuove solo il gestore dell'estensione.

Considerazioni importanti

Quando si riguardano i cmdlet di Azure Resource Manager, è necessario tenere presenti diverse considerazioni.

  • I cmdlet di Azure Resource Manager sono sincroni,

  • Sono necessari diversi parametri, tra cui ResourceGroupName, VMName, ArchiveStorageAccountName, Version e Location.

  • 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.

Configurazione con cmdlet PowerShell

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. Tenere presente che il nodo non è gestito centralmente.

Il codice seguente mostra un esempio di configurazione semplice. Per usare questo esempio, salvare questa configurazione in locale come file di script iisInstall.ps1.

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

I comandi PowerShell seguenti inseriscono lo script IisInstall.ps1 nella VM 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. Gli esempi seguenti illustrano come distribuire una macchina virtuale in Windows.

Per una macchina virtuale che esegue Windows, usare il comando seguente:

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

Distribuzione del portale di Azure

Per configurare l'estensione DSC nel portale di Azure, seguire questa procedura:

  1. Selezionare una macchina virtuale.

  2. In Impostazioni, selezionare Estensioni e applicazioni.

  3. In Estensioni, seleziona + Aggiungi.

  4. Selezionare Configurazione dello stato desiderato di PowerShell e quindi selezionare Avanti.

  5. Configurare i parametri seguenti per l'estensione DSC.

    Nota

    Se si usa uno script di configurazione predefinito, tenere presente che la maggior parte dei parametri seguenti deve essere definita direttamente nel portale di Azure anziché tramite lo script.

    • Moduli di configurazione o script: (obbligatorio) Specificare i moduli di configurazione o il file di script per la macchina virtuale.

      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: (obbligatorio) specificare questa impostazione per includere più funzioni di configurazione in un singolo file script con estensione ps1. Per questa impostazione, immettere il nome del file di script di configurazione ps1 seguito da una barra \ e quindi il nome della funzione di configurazione. Ad esempio, se il file di script ps1 ha il nome configuration.ps1 e il nome di configurazione è IisInstall, immettere il valore configuration.ps1\IisInstall per l'impostazione.

    • Argomenti di configurazione: se la funzione di configurazione accetta argomenti, immettere i valori usando il formato argumentName1=value1,argumentName2=value2. Si noti che questo formato è diverso da quello usato per specificare gli argomenti di configurazione nei cmdlet di PowerShell o nei modelli di Resource Manager.

      Nota

      Gli argomenti di configurazione possono essere definiti in uno script di configurazione predefinito.

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

    • Versione WMF: specificare la versione di Windows Management Framework da installare nella macchina virtuale. Se si sceglie più recente, ovvero il valore predefinito, il sistema installa la versione più recente di WMF. Altri valori possibili: 4.0, 5.0 e 5.1. I valori possibili sono soggetti ad aggiornamenti.

    • Raccolta dati: abilitare questa impostazione se si vuole che l'estensione DSC raccolga i dati di telemetria sulla macchina virtuale. Per altre informazioni, vedere Azure DSC extension data collection (Raccolta di dati dell'estensione DSC di Azure).

    • Versione: (obbligatorio) specificare la versione dell'estensione DSC da installare. Per informazioni sulle versioni, vedere Cronologia delle versioni dell'estensione Azure DSC.

    • Aggiornamento automatico versione secondaria: questa impostazione esegue il mapping all'opzione AutoUpdate nei cmdlet. Configurare questa impostazione per abilitare l'estensione DSC per l'aggiornamento automatico alla versione più recente durante l'installazione. indica al gestore dell'estensione DSC di usare la versione più recente disponibile. No (impostazione predefinita) forza l'installazione della versione specificata nell'impostazione Versione.

  6. Dopo aver configurato i parametri, selezionare Rivedi e crea e quindi selezionare Crea.

Log delle estensioni DSC

È possibile visualizzare i log per l'estensione Azure DSC nella macchina virtuale in C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\<version number>.

Passaggi successivi