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

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 delle macchine virtuali di Azure sono componenti software che estendono la funzionalità delle macchine virtuali e semplificano varie operazioni di gestione delle macchine virtuali.

L'uso principale per l'estensione DSC (Desired State Configuration) di Azure per Windows PowerShell consiste nel avviare il bootstrap di una macchina virtuale nel servizio Automazione di Azure State Configuration (DSC). 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 la versione 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 computer di gestione automatica di Azure. La funzionalità di configurazione del computer combina le funzionalità del gestore dell'estensione DSC, Automazione di Azure State Configuration e le funzionalità più comunemente richieste dai commenti e suggerimenti dei clienti. La configurazione del computer include anche il supporto di computer ibridi tramite 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 la configurazione del computer 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 DSC di Azure, è necessario usare il portale di Azure o Azure PowerShell SDK nel computer locale.

  • Agente guest: la macchina virtuale di Azure preparata dalla configurazione DSC deve usare un sistema operativo che supporta Windows Management Framework (WMF) 4.0 o versione successiva. Per l'elenco completo delle versioni supportate del sistema operativo, vedere la cronologia delle versioni dell'estensione DSC di Azure.

Termini e concetti

Questo articolo presuppone familiarità con i concetti seguenti:

  • La configurazione fa riferimento a un documento di configurazione DSC.

  • Node identifica una destinazione per una configurazione DSC. In questo articolo il 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 DSC di Azure usa il framework di estensione macchina virtuale di Azure per distribuire, applicare e creare report sulle configurazioni DSC in esecuzione nelle macchine virtuali 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.

Quando l'estensione viene chiamata la prima volta, installa una versione di WMF usando 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 wmfVersion proprietà viene specificata, viene installata la versione specificata di WMF, a meno che la versione specificata non sia incompatibile con il sistema operativo nella macchina virtuale.

  • Se non viene specificata alcuna wmfVersion proprietà, 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 specificato nella modulesUrl proprietà , se specificato. Se questo percorso si trova in Archiviazione BLOB di Azure, è possibile specificare un token di firma di accesso condiviso nella sasToken proprietà per accedere al file. Dopo aver scaricato e decompresso il file ZIP, la funzione di configurazione definita in configurationFunction viene eseguita per generare un file MOF (Managed Object Format). L'estensione esegue quindi il Start-DscConfiguration -Force comando usando il file 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 che deve essere usato quando si esegue l'onboarding di una macchina virtuale nel servizio Automazione di Azure State Configuration. I parametri dello script sono allineati con le proprietà configurabili di Gestione configurazione locale. Per i parametri di script, vedere Script di configurazione predefinito nell'estensione Desired State Configuration con i modelli di Azure Resource Manager (ARM). Per lo script completo, vedere il modello di avvio rapido di Azure in GitHub.

Automazione di Azure registrazione di State Configuration

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

  • 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. Il valore è il nome della configurazione del nodo e non il nome della configurazione.

È possibile raccogliere questi valori dalla 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 NodeConfigurationName parametro assicurarsi di specificare il nome della configurazione del nodo e non la configurazione.

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 localhost da un nome computer specifico.

Avviso

Assicurarsi che la configurazione del nodo esista in Automazione di Azure State Configuration. 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 e per esempi su come includere l'estensione DSC nei modelli di Resource Manager, vedere Estensione Desired State Configuration con i modelli di Resource Manager.

Distribuzione dei cmdlet di 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 vengono 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 -OutputArchivePath parametro . In caso contrario, il cmdlet pubblica il file con estensione zip nel BLOB Archiviazione e quindi lo protegge con un token di firma di accesso condiviso.

    Lo script di configurazione di PowerShell (con estensione 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 in una singola macchina virtuale o in un gruppo di macchine virtuali.

  • Il cmdlet Remove-AzVMDscExtension rimuove il gestore dell'estensione da una macchina virtuale specifica. Tenere presente che questo cmdlet non rimuove la configurazione, disinstalla WMF o 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, tenere presenti diverse considerazioni.

  • I cmdlet di Azure Resource Manager sono sincroni,

  • Sono necessari diversi parametri, tra cui ResourceGroupName, VMNameArchiveStorageAccountName, , Versione Location.

  • ArchiveResourceGroupName è un parametro facoltativo. Specificare questo parametro quando l'account di archiviazione appartiene a un gruppo di risorse diverso da quello in cui viene creata la macchina virtuale.

  • Usare l'opzione AutoUpdate per aggiornare automaticamente il 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 i cmdlet di 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 illustra una semplice configurazione di esempio. 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 di PowerShell seguenti inserisce 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. 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 portale di Azure

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

  1. Selezionare una macchina virtuale.

  2. In Impostazioni selezionare Estensioni e applicazioni.

  3. In Estensioni selezionare + 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 dei moduli nel 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 nel BLOB utente Archiviazione 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 di script con estensione ps1. Per questa impostazione, immettere il nome del file di script .ps1 di configurazione seguito da una barra \ e quindi il nome della funzione di configurazione. Ad esempio, se il file di script con estensione 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 dal formato usato per specificare gli argomenti di configurazione nei cmdlet di PowerShell o nei modelli arm.

      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'Archiviazione BLOB dell'utente. Il file di dati di configurazione è protetto con un token di firma di accesso condiviso in Blob Archiviazione.

    • Versione WMF: specificare la versione di Windows Management Framework da installare nella macchina virtuale. Se si sceglie la versione più recente di WMF, ovvero il valore predefinito, il sistema installa la versione più recente di WMF. Altri valori possibili includono 4.0, 5.0 e 5.1. I valori possibili sono soggetti agli 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 DSC di Azure.

    • 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 DSC di Azure nella macchina virtuale in C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\<version number>.

Passaggi successivi