Condividi tramite


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

Nota

Prima di abilitare l'estensione DSC, si vuole sapere che una versione più recente di DSC è ora disponibile a livello generale, denominata Configurazione di Azure Machine. Il servizio Configurazione di Azure Machine include funzionalità dell'estensione DSC e funzionalità 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'estensione DSC 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.

Versioni DSC disponibili

L'estensione DSC supporta le configurazioni della versione 1.1 della piattaforma DSC. Per altre informazioni, vedere PSDesiredStateConfiguration v1.1.

Prerequisiti

  • Workstation per sviluppatori: per interagire con l'estensione DSC di Azure, è necessario usare il portale di Azure o Azure PowerShell/CLI SDK.

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

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.

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.

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.

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. Questo passaggio non registra il nodo in Automazione o Configurazione computer. 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.

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

    • 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