Automazione di Azure configurazione dello stato alla pianificazione della migrazione della configurazione del computer
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.
Importante
I collegamenti di spostamento Aggiungi, Compose e Gallery verranno rimossi dal portale il 31 marzo 2025.
La configurazione del computer è l'implementazione più recente della funzionalità fornita da Automazione di Azure State Configuration (nota anche come Automazione di Azure Desired State Configuration o AADSC). Quando è possibile, è consigliabile pianificare il trasferimento di contenuto e computer al nuovo servizio. Questo articolo fornisce materiale sussidiario sullo sviluppo di una strategia di migrazione da Automazione di Azure alla configurazione del computer.
Nuove funzionalità nella configurazione del computer rispondono alle richieste dei clienti:
- Aumento del limite di dimensioni per le configurazioni a 100 MB
- Creazione di report avanzati tramite Azure Resource Graph, inclusi l'ID risorsa e lo stato
- Possibilità di gestire più configurazioni per lo stesso computer
- Possibilità di controllare quando si verifica una correzione quando le macchine si allontanano dallo stato desiderato
- Risorse DSC basate su PowerShell per Linux e Windows
Prima di iniziare, è consigliabile leggere le informazioni generali concettuali nella pagina Criteri di Azure configurazione del computer.
Informazioni sulla migrazione
L'approccio migliore alla migrazione consiste nel ridistribuire prima il contenuto e quindi eseguire la migrazione dei computer. Questa sezione descrive i passaggi previsti per la migrazione.
- Esportare le configurazioni da Automazione di Azure
- Individuare i requisiti del modulo e caricarli nell'ambiente
- Compilare le configurazioni
- Creare e pubblicare pacchetti di configurazione del computer
- Testare i pacchetti di configurazione del computer
- Eseguire l'onboarding di computer ibridi in Azure Arc
- Annullare la registrazione dei server da Automazione di Azure State Configuration
- Assegnare configurazioni ai server usando la configurazione del computer
La configurazione del computer usa DSC versione 2 con PowerShell versione 7. DSC versione 3 può coesistere con le versioni precedenti di DSC in Windows e Linux. Le implementazioni sono separate. Tuttavia, non esiste alcun rilevamento dei conflitti.
La configurazione del computer non richiede la pubblicazione di moduli o configurazioni in un servizio o la compilazione in un servizio. Al contrario, si sviluppa e si testa il contenuto usando strumenti creati appositamente e si pubblica il contenuto ovunque il computer possa raggiungere https (in genere Archiviazione BLOB di Azure).
Se si decide di disporre di computer in entrambi i servizi per un certo periodo di tempo, non esistono barriere tecniche. I due servizi sono indipendenti.
Esportare contenuto da Automazione di Azure
Per iniziare, individuare ed esportare contenuto da Automazione di Azure State Configuration in un ambiente di sviluppo in cui si creano, testano e pubblicano pacchetti di contenuto per la configurazione del computer.
Configurazioni
È possibile esportare solo gli script di configurazione da Automazione di Azure. Non è possibile esportare configurazioni dei nodi o file MOF compilati. Se i file MOF sono stati pubblicati direttamente nell'account di Automazione e non hanno più accesso al file originale, è necessario ricompilare gli script di configurazione privati. Se non è possibile trovare la configurazione originale, è necessario riautorrla.
Per esportare gli script di configurazione da Automazione di Azure, identificare prima di tutto l'account Automazione di Azure con le configurazioni e il nome del gruppo di risorse in cui viene distribuito l'account di Automazione.
Installare il modulo PowerShell Az.Automation.
Install-Module -Name Az.Automation
Usare quindi il Get-AzAutomationAccount
comando per identificare gli account di Automazione e il gruppo di risorse in cui vengono distribuiti. Le proprietà ResourceGroupName e AutomationAccountName sono importanti per i passaggi successivi.
Get-AzAutomationAccount
SubscriptionId : <your-subscription-id>
ResourceGroupName : <your-resource-group-name>
AutomationAccountName : <your-automation-account-name>
Location : centralus
State :
Plan :
CreationTime : 6/30/2021 11:56:17 AM -05:00
LastModifiedTime : 6/30/2021 11:56:17 AM -05:00
LastModifiedBy :
Tags : {}
Individuare le configurazioni nell'account di Automazione. L'output ha una voce per ogni configurazione. Se si dispone di molti, archiviare le informazioni come variabile in modo che sia più facile usare.
$getParams = @{
ResourceGroupName = '<your-resource-group-name>'
AutomationAccountName = '<your-automation-account-name>'
}
Get-AzAutomationDscConfiguration @getParams
ResourceGroupName : <your-resource-group-name>
AutomationAccountName : <your-automation-account-name>
Location : centralus
State : Published
Name : <your-configuration-name>
Tags : {}
CreationTime : 6/30/2021 12:18:26 PM -05:00
LastModifiedTime : 6/30/2021 12:18:26 PM -05:00
Description :
Parameters : {}
LogVerbose : False
Infine, esportare ogni configurazione in un file di script locale usando il comando Export-AzAutomationDscConfiguration
. Il nome file risultante usa il modello \ConfigurationName.ps1
.
$exportParams = @{
OutputFolder = '<location-on-your-machine>'
ResourceGroupName = '<your-resource-group-name>'
AutomationAccountName = '<your-automation-account-name>'
Name = '<your-configuration-name>'
}
Export-AzAutomationDscConfiguration @exportParams
UnixMode User Group LastWriteTime Size Name
-------- ---- ----- ------------- ---- ----
12/31/1600 18:09
Esportare le configurazioni usando la pipeline di PowerShell
È possibile esportare tutte le configurazioni in una cartella locale nel computer. Per automatizzare questo processo, inviare tramite pipe l'output di ogni comando negli esempi precedenti al comando successivo.
Nell'esempio seguente vengono esportate cinque configurazioni. Il modello di output è l'unico indicatore di esito positivo.
Get-AzAutomationAccount |
Get-AzAutomationDscConfiguration |
Export-AzAutomationDSCConfiguration -OutputFolder <location on your machine>
UnixMode User Group LastWriteTime Size Name
-------- ---- ----- ------------- ---- ----
12/31/1600 18:09
12/31/1600 18:09
12/31/1600 18:09
12/31/1600 18:09
12/31/1600 18:09
Valutare la possibilità di scomporre file di configurazione complessi
La configurazione del computer può gestire più di una configurazione per computer. Molte configurazioni scritte per Automazione di Azure State Configuration presupponevano la limitazione della gestione di una singola configurazione per computer. Per sfruttare le funzionalità espanse offerte dalla configurazione del computer, è possibile dividere file di configurazione di grandi dimensioni in molte configurazioni più piccole in cui ognuno gestisce uno scenario specifico.
Non esiste alcuna orchestrazione nella configurazione del computer per controllare l'ordine di ordinamento delle configurazioni. Tenere insieme i passaggi di una configurazione in un unico pacchetto se è necessario eseguire sequenziali.
moduli
Non è possibile esportare moduli da Automazione di Azure o correlare automaticamente le configurazioni che richiedono i moduli e le versioni. Per creare un nuovo pacchetto di configurazione del computer, è necessario disporre dei moduli nell'ambiente locale. Per creare un elenco di moduli necessari per la migrazione, usare PowerShell per eseguire query Automazione di Azure per il nome e la versione dei moduli.
Se si usano moduli creati e creati solo nell'ambiente di sviluppo privato, non è possibile esportarli da Automazione di Azure.
Se manca un modulo necessario per una configurazione e nell'account, non è possibile compilare la configurazione. Pertanto, non è possibile eseguire la migrazione della configurazione.
Elencare i moduli importati in Automazione di Azure
Per recuperare un elenco di tutti i moduli installati nell'account di automazione, usare il Get-AzAutomationModule
comando . La proprietà IsGlobal indica se il modulo è integrato in Automazione di Azure sempre o se è stato pubblicato nell'account.
Ad esempio, per creare un elenco di tutti i moduli pubblicati in uno qualsiasi degli account.
Get-AzAutomationAccount |
Get-AzAutomationModule |
Where-Object IsGlobal -eq $false
È anche possibile usare PowerShell Gallery come supporto per trovare informazioni dettagliate sui moduli disponibili pubblicamente. L'esempio seguente elenca i moduli incorporati in nuovi account di automazione e contengono risorse DSC.
Get-AzAutomationAccount |
Get-AzAutomationModule |
Where-Object IsGlobal -eq $true |
Find-Module -ErrorAction SilentlyContinue |
Where-Object {'' -ne $_.Includes.DscResource} |
Select-Object -Property Name, Version -Unique |
Format-Table -AutoSize
Name Version
---- -------
AuditPolicyDsc 1.4.0
ComputerManagementDsc 8.4.0
PSDscResources 2.12.0
SecurityPolicyDsc 2.10.0
xDSCDomainjoin 1.2.23
xPowerShellExecutionPolicy 3.1.0.0
xRemoteDesktopAdmin 1.1.0.0
Scaricare moduli da PowerShell Gallery o da un repository PowerShellGet
Se i moduli sono stati importati da PowerShell Gallery, è possibile inviare tramite pipe l'output direttamente Find-Module
a Install-Module
. Il piping dell'output tra i comandi offre una soluzione per caricare un ambiente di sviluppo con tutti i moduli attualmente in un account di Automazione, se disponibili in PowerShell Gallery.
È possibile usare lo stesso approccio per eseguire il pull dei moduli da un feed NuGet personalizzato. È necessario registrare il feed nell'ambiente locale come repository PowerShellGet.
Il Find-Module
comando in questo esempio non elimina gli errori, ovvero i moduli non trovati nella raccolta restituiscono un messaggio di errore.
Get-AzAutomationAccount |
Get-AzAutomationModule |
Where-Object IsGlobal -eq $false |
Find-Module |
Where-Object { '' -ne $_.Includes.DscResource } |
Install-Module
Controllo degli script di configurazione per i requisiti del modulo
Dopo aver esportato gli script di configurazione da Automazione di Azure, è possibile esaminare il contenuto per informazioni dettagliate sui moduli necessari per compilare ogni configurazione in un file MOF. Questo approccio è necessario solo se si trovano configurazioni negli account di Automazione che mancano moduli. Le configurazioni non sarebbero più utili per i computer, ma potrebbero ancora trovarsi nell'account.
Verso la parte superiore di ogni file cercare una riga che include Import-DscResource
. Questo comando è applicabile solo all'interno di una configurazione e viene usato per caricare i moduli al momento della compilazione.
Ad esempio, la WindowsIISServerConfig
configurazione in PowerShell Gallery include le righe in questo esempio.
configuration WindowsIISServerConfig
{
Import-DscResource -ModuleName @{ModuleName = 'xWebAdministration';ModuleVersion = '1.19.0.0'}
Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
La configurazione richiede che il modulo xWebAdministration versione 1.19.0.0 e il modulo PSDesiredStateConfiguration.
Testare il contenuto nella configurazione del computer di Azure
Per valutare se è possibile usare il contenuto di Automazione di Azure State Configuration per la configurazione del computer, seguire l'esercitazione dettagliata in Come creare artefatti del pacchetto di configurazione del computer personalizzato.
Quando si raggiunge il passaggio Creare una configurazione, lo script di configurazione che genera un file MOF deve essere uno degli script esportati da Automazione di Azure State Configuration. Prima di poter compilare la configurazione in un file MOF e creare un pacchetto di configurazione del computer, è necessario che i moduli di PowerShell necessari siano installati nell'ambiente.
Cosa accade se un modulo non funziona con la configurazione del computer?
Alcuni moduli potrebbero avere problemi di compatibilità con la configurazione del computer. I problemi più comuni sono correlati a .NET Framework e .NET Core. Informazioni tecniche dettagliate sono disponibili nella pagina Differenze tra Windows PowerShell 5.1 e PowerShell 7.x.
Per risolvere i problemi di compatibilità, è possibile eseguire comandi in Windows PowerShell dall'interno di un modulo importato in PowerShell 7 eseguendo powershell.exe
. È possibile esaminare un modulo di esempio che usa questa tecnica nel repository Di Criteri di Azure in cui viene usato per controllare lo stato della configurazione DSC di Windows.
L'esempio illustra anche un piccolo modello di verifica.
# example function that could be loaded from module
function New-TaskResolvedInPWSH7 {
# runs the fictitious command 'Get-myNotCompatibleCommand' in Windows PowerShell
$compatObject = & powershell.exe -NoProfile -NonInteractive -Command {
Get-myNotCompatibleCommand
}
# resulting object can be used in PowerShell 7
return $compatObject
}
È necessario aggiungere la proprietà Reasons a Get-TargetResource in tutti i moduli di cui si esegue la migrazione?
L'implementazione della proprietà Reasons offre un'esperienza migliore quando si visualizzano i risultati di un'assegnazione di configurazione dal portale di Azure. Se il Get
metodo in un modulo non include Reasons, l'output generico viene restituito con i dettagli delle proprietà restituite dal Get
metodo . Pertanto, è facoltativo per la migrazione.
virtuali
Automazione di Azure State Configuration è disponibile sia per le macchine virtuali in Azure che per le macchine ibride che si trovano all'esterno di Azure. È necessario pianificare ognuno di questi scenari usando passaggi diversi.
Macchine virtuali di Azure
Le macchine virtuali di Azure hanno già una risorsa in Azure, ovvero sono pronte per le assegnazioni di configurazione del computer che le associano a una configurazione. Le attività generali per la migrazione delle macchine virtuali di Azure devono rimuoverle da Automazione di Azure State Configuration e quindi assegnare le configurazioni usando la configurazione del computer.
Per rimuovere un computer da Automazione di Azure State Configuration, seguire la procedura descritta nella pagina Come rimuovere una configurazione e un nodo da State Configuration di Automazione.
Per assegnare configurazioni usando la configurazione del computer, seguire la procedura descritta nelle guide introduttive di Criteri di Azure, ad esempio Avvio rapido: Creare un'assegnazione di criteri per identificare le risorse non conformi. Nel passaggio 6 quando si seleziona una definizione di criteri, selezionare la definizione che applica una configurazione di cui è stata eseguita la migrazione da Automazione di Azure State Configuration.
Computer ibridi
I computer esterni ad Azure possono essere registrati per Automazione di Azure State Configuration, ma non hanno una risorsa computer in Azure. Il servizio Gestione configurazione locale all'interno del computer gestisce la connessione a Automazione di Azure. Il record del nodo viene gestito come risorsa nel tipo di provider Automazione di Azure.
Prima di rimuovere un computer da Automazione di Azure State Configuration, eseguire l'onboarding di ogni nodo come server abilitato per Azure Arc. L'onboarding in Azure Arc crea una risorsa computer in Azure in modo che Criteri di Azure possa gestire il computer. Il computer può essere caricato in Azure Arc in qualsiasi momento, ma è possibile usare Automazione di Azure State Configuration per automatizzare il processo.
Risoluzione dei problemi durante l'esportazione del contenuto
In questa sezione vengono fornite informazioni dettagliate sui problemi noti.
L'esportazione delle configurazioni comporta un carattere "\" nel nome del file
Quando si usa PowerShell in macOS e Linux, potrebbero verificarsi problemi con l'output dei nomi file da Export-AzAutomationDSCConfiguration
.
Come soluzione alternativa, installare il modulo AADSCConfigContent da PowerShell Gallery. Il modulo ha un comando che esporta il contenuto di una configurazione archiviata in Automazione di Azure effettuando una richiesta REST al servizio.
Passaggi successivi
- Sviluppare un pacchetto di configurazione del computer personalizzato.
- Usare il modulo GuestConfiguration per creare una definizione di Criteri di Azure per la gestione su larga scala dell'ambiente.
- Assegnare la definizione dei criteri personalizzata usando il portale di Azure.
- Informazioni su come visualizzare i dettagli di conformità per le assegnazioni dei criteri di configurazione del computer.