Condividi tramite


Abilitare State Configuration di Automazione di Azure

Nota

Automazione di Azure State Configuration verrà ritirato il 30 settembre 2027. Passare a Configurazione di Azure Machine entro tale data. Per altre informazioni, vedere l'annuncio del post di blog. 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.

Attenzione

Automazione di Azure DSC per Linux è stato ritirato il 30 settembre 2023. Per altre informazioni, vedere l'annuncio.

Questo articolo descrive come configurare i computer per la gestione con Automazione di Azure State Configuration. Per informazioni dettagliate su questo servizio, vedere Panoramica di State Configuration di Automazione di Azure.

Abilitare le macchine virtuali di Azure

State Configuration di Automazione di Azure consente di abilitare facilmente le VM di Azure per la gestione della configurazione usando il portale di Azure, i modelli di Azure Resource Manager o PowerShell. L'estensione Desired State Configuration della macchina virtuale di Azure registra automaticamente la macchina virtuale con Automazione di Azure State Configuration. L'estensione di Azure viene eseguita in modo asincrono, quindi i passaggi per tenere traccia dello stato sono disponibili in Controllare lo stato di configurazione della macchina virtuale.

Nota

La distribuzione di DSC in un nodo Linux usa la cartella /tmp. I moduli come nxautomation vengono scaricati temporaneamente per la verifica prima di installarli nelle rispettive posizioni. Per assicurarsi che i moduli vengano installati correttamente, l'agente di Log Analytics per Linux deve avere le autorizzazioni di lettura/scrittura per la cartella /tmp. L'agente di Log Analytics per Linux viene eseguito come utente omsagent. Per concedere l'>autorizzazione di scrittura per l'utente omsagent, eseguire il comando setfacl -m u:omsagent:rwx /tmp.

Abilitare una macchina virtuale usando il portale di Azure

Per abilitare una macchina virtuale di Azure per State Configuration tramite il portale di Azure:

  1. Passare all'account di Automazione di Azure in cui abilitare le VM.
  2. Nella pagina State Configuration (Configurazione stato) selezionare la scheda Nodi e quindi selezionare Aggiungi.
  3. Scegliere una VM da abilitare.
  4. Se nel computer non è installata l'estensione dello stato desiderato di PowerShell e lo stato di alimentazione è in esecuzione, selezionare Connetti.
  5. In Registrazione immettere i valori di Configuration Manager locale per PowerShell DSC necessari per il proprio caso d'uso. Facoltativamente è possibile immettere una configurazione del nodo da assegnare alla VM.

abilitazione della macchina virtuale

Abilitare una macchina virtuale usando modelli di Azure Resource Manager

È possibile installare e abilitare una macchina virtuale per State Configuration usando modelli di Azure Resource Manager. Per un modello di esempio che abilita una macchina virtuale esistente per State Configuration, vedere Server gestito dal servizio Desired State Configuration. Se si gestisce un set di scalabilità di macchine virtuali, vedere il modello di esempio in Configurazione del set di scalabilità di macchine virtuali gestito da Automazione di Azure.

Abilitare le macchine con PowerShell

È possibile usare il cmdlet Register-AzAutomationDscNode in PowerShell per abilitare le macchine virtuali per State Configuration.

Nota

Il cmdlet Register-AzAutomationDscNode viene implementato attualmente solo per i computer che eseguono Windows, perché attiva solo l'estensione di Windows.

Registrare le macchine virtuali tra sottoscrizioni di Azure

Il modo migliore per registrare le macchine virtuali da altre sottoscrizioni di Azure consiste nell'usare l'estensione DSC in un modello di distribuzione Azure Resource Manager. Gli esempi sono disponibili in Estensione Desired State Configuration (DSC) con modelli di Azure Resource Manager.

Usare la metaconfigurazione DSC per registrare computer ibridi

È possibile abilitare i computer in modo sicuro per un account di Automazione di Azure tramite la metaconfigurazione DSC. I protocolli implementati in DSC usano informazioni dalla metaconfigurazione per l'autenticazione a State Configuration di Automazione di Azure. Il nodo viene registrato con il servizio nell'URL di registrazione ed esegue l'autenticazione usando una chiave di registrazione. Durante la registrazione, il nodo DSC e il server DSC negoziano un certificato univoco che il nodo dovrà usare per l'autenticazione al server dopo la registrazione. Questo processo impedisce ai nodi abilitati di rappresentarsi reciprocamente, ad esempio nel caso di un nodo compromesso e che presenta un comportamento dannoso. Dopo la registrazione, la chiave di registrazione non viene usata di nuovo per l'autenticazione e viene eliminata dal nodo.

È possibile ottenere le informazioni necessarie per il protocollo di registrazione di Configurazione stato da Chiavi in Impostazioni account nel portale di Azure.

Chiavi e URL di Automazione di Azure

  • L'URL di registrazione si trova nel campo URL della pagina Chiavi.
  • La chiave di registrazione è il valore del campo Chiave di accesso primaria o del campo Chiave di accesso secondaria nella pagina Chiavi. È possibile usare una delle due chiavi.

Per una maggiore sicurezza, nella pagina Chiavi è possibile rigenerare in qualsiasi momento le chiavi di accesso primaria e secondaria di un account di Automazione. La rigenerazione delle chiavi impedisce alle registrazioni dei nodi successive di usare le chiavi precedenti.

Generare metaconfigurazioni DSC

Per abilitare qualsiasi computer per State Configuration è possibile generare una metaconfigurazione DSC. Questa configurazione indica all'agente DSC di effettuare il pull da e/o di inviare report a State Configuration di Automazione di Azure. È possibile generare le metaconfigurazioni DSC per State Configuration di Automazione di Azure tramite una configurazione DSC di PowerShell o i cmdlet di PowerShell per Automazione di Azure.

Nota

Le metaconfigurazioni DSC contengono i segreti necessari per abilitare un computer in un account di Automazione per la gestione. Assicurarsi di proteggere adeguatamente le metaconfigurazioni DSC create oppure eliminarle dopo l'uso.

Gestione configurazione locale controlla il supporto proxy per le metaconfigurazioni. Viene eseguito in tutti i nodi di destinazione e ha la responsabilità di chiamare le risorse di configurazione incluse in uno script di metaconfigurazione DSC. È possibile integrare il supporto del proxy in una metaconfigurazione includendo le definizioni delle proprietà ProxyURL e ProxyCredential in base alle esigenze nei blocchi ConfigurationRepositoryWeb, ResourceRepositoryWeb e ReportServerWeb. Un esempio di impostazione dell'URL è ProxyURL = "http://172.16.3.6:3128";. La proprietà ProxyCredential è impostata su un oggetto PSCredential, come descritto in Gestire le credenziali in Automazione di Azure.

Generare metaconfigurazioni DSC usando una configurazione DSC

  1. Aprire un editor di testo, ad esempio Visual Studio Code (VS Code), come amministratore in un computer nell'ambiente locale. Nel computer deve essere installata la versione più recente di WMF 5 .

  2. Copiare localmente lo script seguente. Questo script contiene una configurazione DSC di PowerShell per la creazione delle metaconfigurazioni e un comando per avviare la creazione delle metaconfigurazioni.

    Nota

    I nomi di configurazione dei nodi di State Configuration fanno distinzione tra maiuscole e minuscole nel portale di Azure. Se le maiuscole e le minuscole non corrispondono, il nodo non verrà visualizzato nella scheda Nodi.

    # The DSC configuration that will generate metaconfigurations
    [DscLocalConfigurationManager()]
    Configuration DscMetaConfigs
    {
         param
         (
             [Parameter(Mandatory=$True)]
             [String]$RegistrationUrl,
    
             [Parameter(Mandatory=$True)]
             [String]$RegistrationKey,
    
             [Parameter(Mandatory=$True)]
             [String[]]$ComputerName,
    
             [Int]$RefreshFrequencyMins = 30,
    
             [Int]$ConfigurationModeFrequencyMins = 15,
    
             [String]$ConfigurationMode = 'ApplyAndMonitor',
    
             [String]$NodeConfigurationName,
    
             [Boolean]$RebootNodeIfNeeded= $False,
    
             [String]$ActionAfterReboot = 'ContinueConfiguration',
    
             [Boolean]$AllowModuleOverwrite = $False,
    
             [Boolean]$ReportOnly
         )
    
         if(!$NodeConfigurationName -or $NodeConfigurationName -eq '')
         {
             $ConfigurationNames = $null
         }
         else
         {
             $ConfigurationNames = @($NodeConfigurationName)
         }
    
         if($ReportOnly)
         {
             $RefreshMode = 'PUSH'
         }
         else
         {
             $RefreshMode = 'PULL'
         }
    
         Node $ComputerName
         {
             Settings
             {
                 RefreshFrequencyMins           = $RefreshFrequencyMins
                 RefreshMode                    = $RefreshMode
                 ConfigurationMode              = $ConfigurationMode
                 AllowModuleOverwrite           = $AllowModuleOverwrite
                 RebootNodeIfNeeded             = $RebootNodeIfNeeded
                 ActionAfterReboot              = $ActionAfterReboot
                 ConfigurationModeFrequencyMins = $ConfigurationModeFrequencyMins
             }
    
             if(!$ReportOnly)
             {
             ConfigurationRepositoryWeb AzureAutomationStateConfiguration
                 {
                     ServerUrl          = $RegistrationUrl
                     RegistrationKey    = $RegistrationKey
                     ConfigurationNames = $ConfigurationNames
                 }
    
                 ResourceRepositoryWeb AzureAutomationStateConfiguration
                 {
                     ServerUrl       = $RegistrationUrl
                     RegistrationKey = $RegistrationKey
                 }
             }
    
             ReportServerWeb AzureAutomationStateConfiguration
             {
                 ServerUrl       = $RegistrationUrl
                 RegistrationKey = $RegistrationKey
             }
         }
    }
    
    # Create the metaconfigurations
    # NOTE: DSC Node Configuration names are case sensitive in the portal.
    # TODO: edit the below as needed for your use case
    $Params = @{
         RegistrationUrl = '<fill me in>';
         RegistrationKey = '<fill me in>';
         ComputerName = @('<some VM to onboard>', '<some other VM to onboard>');
         NodeConfigurationName = 'SimpleConfig.webserver';
         RefreshFrequencyMins = 30;
         ConfigurationModeFrequencyMins = 15;
         RebootNodeIfNeeded = $False;
         AllowModuleOverwrite = $False;
         ConfigurationMode = 'ApplyAndMonitor';
         ActionAfterReboot = 'ContinueConfiguration';
         ReportOnly = $False;  # Set to $True to have machines only report to AA DSC but not pull from it
    }
    
    # Use PowerShell splatting to pass parameters to the DSC configuration being invoked
    # For more info about splatting, run: Get-Help -Name about_Splatting
    DscMetaConfigs @Params
    
  3. Immettere la chiave di registrazione e l'URL per l'account di Automazione e i nomi dei computer da abilitare. Tutti gli altri parametri sono facoltativi. Per trovare la chiave di registrazione e l'URL di registrazione per l'account di Automazione, vedere Usare la metaconfigurazione DSC per registrare i computer ibridi.

  4. Se si vuole che i computer inviino informazioni sullo stato DSC a State Configuration di Automazione di Azure, ma senza eseguire il pull della configurazione o dei moduli di PowerShell, impostare il parametro ReportOnly su true.

  5. Se ReportOnly non è impostato, i computer segnalano le informazioni sullo stato DSC per Automazione di Azure Configurazione stato e la configurazione pull o i moduli di PowerShell. Impostare i parametri di conseguenza nei blocchi ConfigurationRepositoryWeb, ResourceRepositoryWeb e ReportServerWeb.

  6. Eseguire lo script. A questo punto è disponibile una cartella denominata DscMetaConfigs nella directory di lavoro, contenente le metaconfigurazioni di PowerShell DSC per i computer da abilitare come amministratore:

    Set-DscLocalConfigurationManager -Path ./DscMetaConfigs
    

Generare metaconfigurazioni DSC usando i cmdlet di Automazione di Azure

È possibile generare le metaconfigurazioni DSC usando i cmdlet Automazione di Azure nelle condizioni seguenti:

  • Le impostazioni predefinite di Gestione configurazione locale corrispondono al caso d'uso
  • Si vuole abilitare i computer per eseguire il pull da e il report per Automazione di Azure State Configuration

Per generare le metaconfigurazioni, seguire questa procedura:

  1. Aprire la console di PowerShell o VS Code come amministratore in un computer nell'ambiente locale.

  2. Connettersi ad Azure Resource Manager con Connect-AzAccount.

  3. Scaricare le metaconfigurazioni DSC di PowerShell per i computer da abilitare dall'account di Automazione in cui si configurano i nodi.

    # Define the parameters for Get-AzAutomationDscOnboardingMetaconfig using PowerShell Splatting
    $Params = @{
        ResourceGroupName = 'ContosoResources' # The Resource Group that contains your Azure Automation account
        AutomationAccountName = 'ContosoAutomation'; # The Azure Automation account where you want to onboard the node
        ComputerName = @('web01', 'web02', 'sql01'); # The computers to generate the metaconfigurations for
        OutputFolder = "$env:UserProfile\Desktop\";
    }
    # Use PowerShell splatting to pass parameters to the Azure Automation cmdlet being invoked
    # For more info about splatting, run: Get-Help -Name about_Splatting
    Get-AzAutomationDscOnboardingMetaconfig @Params
    
  4. A questo punto è disponibile una cartella denominata DscMetaConfigs contenente le metaconfigurazioni di PowerShell DSC per i computer da abilitare come amministratore:

    Set-DscLocalConfigurationManager -Path $env:UserProfile\Desktop\DscMetaConfigs
    

Abilitare computer fisici e macchine virtuali Windows

È possibile abilitare i server Windows in esecuzione in locale o in altri ambienti cloud (incluse le istanze di AWS EC2) per State Configuration di Automazione di Azure. I server devono avere l'accesso in uscita ad Azure.

  1. Assicurarsi che nei computer sia installata la versione più recente di WMF 5 per abilitare State Configuration. Inoltre, WMF 5 deve essere installato nel computer in uso per abilitare i computer.

  2. Per creare una cartella contenente le metaconfigurazioni DSC necessarie, seguire le istruzioni riportate in Generare metaconfigurazioni DSC.

  3. Usare il cmdlet seguente per applicare le metaconfigurazioni di PowerShell DSC in remoto ai computer da abilitare.

    Set-DscLocalConfigurationManager -Path C:\Users\joe\Desktop\DscMetaConfigs -ComputerName MyServer1, MyServer2
    
  4. Se non è possibile applicare le metaconfigurazioni DSC di PowerShell in remoto, copiare la cartella delle metaconfigurazioni nei computer abilitati. Aggiungere quindi il codice per chiamare Set-DscLocalConfigurationManager localmente nei computer.

  5. Tramite il portale di Azure o i cmdlet verificare che i computer vengano visualizzati come nodi di State Configuration nell'account di Automazione di Azure.

Abilitare computer fisici e macchine virtuali Linux

È possibile abilitare per State Configuration i server Linux in esecuzione in locale o in altri ambienti cloud. I server devono avere l'accesso in uscita ad Azure.

  1. Assicurarsi che sia installata la versione più recente di PowerShell DSC (Desired State Configuration) per Linux nei computer da abilitare per State Configuration.

  2. Se le impostazioni predefinite di Configuration Manager locale per PowerShell DSC corrispondono al caso d'uso e si vogliono abilitare i computer perché eseguano il pull e inviino report a State Configuration:

    • In ogni computer Linux da abilitare, usare Register.py per abilitare il computer con le impostazioni predefinite di Configuration Manager locale per PowerShell DSC.

      /opt/microsoft/dsc/Scripts/Register.py <Automation account registration key> <Automation account registration URL>

    • Per trovare la chiave di registrazione e l'URL di registrazione per l'account di Automazione, vedere Usare la metaconfigurazione DSC per registrare i computer ibridi.

  3. Se i valori predefiniti di Configuration Manager locale per PowerShell DSC non corrispondono al caso d'uso oppure si vogliono abilitare i computer che inviano solo report a State Configuration di Automazione di Azure, seguire i passaggi 4-7. In caso contrario, andare direttamente al passaggio 7.

  4. Seguire le istruzioni riportate nella sezione Generare metaconfigurazioni DSC per produrre una cartella contenente le metaconfigurazioni DSC richieste.

  5. Assicurarsi che nei computer usati per abilitare le macchine virtuali per State Configuration sia installata la versione più recente di WMF 5.

  6. Aggiungere il codice seguente per applicare le metaconfigurazioni di PowerShell DSC in remoto ai computer da abilitare.

    $SecurePass = ConvertTo-SecureString -String '<root password>' -AsPlainText -Force
    $Cred = New-Object System.Management.Automation.PSCredential 'root', $SecurePass
    $Opt = New-CimSessionOption -UseSsl -SkipCACheck -SkipCNCheck -SkipRevocationCheck
    # need a CimSession for each Linux machine to onboard
    $Session = New-CimSession -Credential $Cred -ComputerName <your Linux machine> -Port 5986 -Authentication basic -SessionOption $Opt
    Set-DscLocalConfigurationManager -CimSession $Session -Path C:\Users\joe\Desktop\DscMetaConfigs
    
  7. Se non è possibile applicare le metaconfigurazioni di PowerShell DSC in remoto, copiare le metaconfigurazioni corrispondenti ai computer remoti dalla cartella indicata nel passaggio 4 ai computer Linux.

  8. Aggiungere il codice per chiamare Set-DscLocalConfigurationManager.py localmente in ogni computer Linux da abilitare per State Configuration.

    /opt/microsoft/dsc/Scripts/SetDscLocalConfigurationManager.py -configurationmof <path to metaconfiguration file>

  9. Assicurarsi che i computer vengano visualizzati come nodi DSC registrati nell'account Automazione di Azure. È possibile usare il portale di Azure o i cmdlet.

Ripetere la registrazione di un nodo

Dopo aver registrato un computer come nodo DSC in Automazione di Azure State Configuration, esistono diversi motivi per cui potrebbe essere necessario registrare nuovamente il nodo in futuro.

  • Rinnovo del certificato. Per le versioni di Windows Server precedenti a Windows Server 2019, ogni nodo negozia automaticamente un certificato univoco per l'autenticazione che scade dopo un anno. Se un certificato scade senza rinnovo, il nodo non è in grado di comunicare con Automazione di Azure ed è contrassegnato come Unresponsive. Attualmente, il protocollo di registrazione DSC di PowerShell non può rinnovare automaticamente i certificati quando sono prossimi alla scadenza ed è necessario registrare nuovamente i nodi dopo un anno. Prima di ripetere la registrazione, assicurarsi che ogni nodo esegua WMF 5 RTM.

    Un nuovo certificato viene generato e usato se si registra nuovamente 90 giorni o meno dall'ora di scadenza del certificato o in qualsiasi momento dopo la scadenza del certificato. Questo problema è stato risolto in Windows Server 2019 e versioni successive.

  • Modifiche ai valori di Configuration Manager locale DSC. Potrebbe essere necessario modificare i valori di Configuration Manager locale di PowerShell DSC impostati durante la registrazione iniziale del nodo, ad esempio ConfigurationMode. Al momento è possibile modificare i valori dell'agente DSC solo tramite la ripetizione della registrazione. L'unica eccezione è il valore di Configurazione del nodo. È possibile modificare questo valore direttamente in Automazione di Azure DSC.

È possibile registrare nuovamente un nodo proprio come è stato registrato inizialmente, usando uno dei metodi descritti in questo documento. Non è necessario annullare la registrazione di un nodo da Automazione di Azure State Configuration prima di registrarlo nuovamente.

Controllare lo stato di configurazione della macchina virtuale

State Configuration di Automazione di Azure consente di abilitare facilmente macchine virtuali Windows di Azure per la gestione della configurazione. In background viene usata l'estensione DSC (Desired State Configuration) per le macchine virtuali di Azure per registrare la macchina virtuale con Configurazione stato di Automazione di Azure. L'estensione DSC (Desired State Configuration) per le VM di Azure viene eseguita in modalità asincrona, quindi può essere importante tenere traccia dell'avanzamento e risolvere i problemi di esecuzione.

Nota

Qualsiasi metodo per abilitare le macchine virtuali Windows di Azure per State Configuration che usi l'estensione DSC (Desired State Configuration) della VM di Azure può richiedere fino a un'ora prima che Automazione di Azure visualizzi le VM come registrate. Questo ritardo è dovuto all'installazione di WMF 5 nella macchina virtuale da parte dell'estensione DSC (Desired State Configuration) della VM di Azure, necessaria per abilitare le macchine virtuali per State Configuration.

Per visualizzare lo stato dell'estensione DSC (Desired State Configuration) della VM di Azure:

  1. Nella portale di Azure passare alla macchina virtuale da abilitare.
  2. Selezionare Estensioni in Impostazioni.
  3. Selezionare quindi DSC o DSCForLinux a seconda del sistema operativo.
  4. Per altri dettagli, è possibile selezionare Visualizza stato dettagliato.

Passaggi successivi