Configurare i computer allo stato desiderato
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.
Configurazione stato di Automazione di Azure consente di specificare le configurazioni per i server e verificare che tali server rimangano nello stato specificato nel corso del tempo.
- Eseguire l'onboarding di una VM in modo che sia gestita da Automation DSC per Azure
- Caricare una configurazione in Automazione di Azure
- Compilare una configurazione in una configurazione nodo
- Assegnare una configurazione nodo a un nodo gestito
- Controllare lo stato di conformità di un nodo gestito
Per questa esercitazione si usa una semplice configurazione DSC che assicura che IIS sia installato nella VM.
Prerequisiti
- Un account di automazione di Azure. Per altre informazioni su un account di Automazione e sui relativi requisiti, vedere Panoramica dell'autenticazione dell'account di Automazione.
- Una VM di Azure Resource Manager (non classica) che esegue Windows Server 2008 R2 o versioni successive. Per istruzioni sulla creazione di una VM, vedere Creare la prima macchina virtuale Windows nel portale di Azure
- Modulo Azure PowerShell 3.6 o versioni successive. Eseguire
Get-Module -ListAvailable Az
per trovare la versione. Se è necessario eseguire l'aggiornamento, vedere Installare e configurare Azure PowerShell. - Familiarità con DSC (Desired State Configuration). Per informazioni su DSC, vedere Panoramica di Windows PowerShell DSC (Desired State Configuration).
Supporto di configurazioni parziali
State Configuration di Automazione di Azure supporta l'uso di configurazioni parziali. In questo scenario DSC è configurato per gestire più configurazioni in modo indipendente e ogni configurazione viene recuperata da Automazione di Azure. È tuttavia possibile assegnare una sola configurazione a un nodo per ogni account di Automazione. Ciò significa che se si usano due configurazioni per un nodo sono necessari due account di Automazione.
Per informazioni dettagliate su come registrare una configurazione parziale da un servizio di pull, vedere la documentazione per le configurazioni parziali.
Per altre informazioni su come i team possono interagire per gestire i server in modo collaborativo usando la configurazione come codice, vedere Informazioni sul ruolo DSC in una pipeline CI/CD.
Accedere ad Azure
Accedere alla sottoscrizione di Azure con il cmdlet Connect-AzAccount e seguire le istruzioni visualizzate.
Connect-AzAccount
Creare e caricare una configurazione in Automazione di Azure
In un editor di testo digitare quanto segue e salvare il file in locale con il nome TestConfig.ps1.
configuration TestConfig {
Node WebServer {
WindowsFeature IIS {
Ensure = 'Present'
Name = 'Web-Server'
IncludeAllSubFeature = $true
}
}
}
Nota
I nomi di configurazione in Automazione di Azure devono essere limitati a non più di 100 caratteri.
Negli scenari più avanzati in cui è necessario importare più moduli che forniscono risorse DSC, assicurarsi che ogni modulo abbia una riga Import-DscResource
univoca nella configurazione.
Chiamare il cmdlet Import-AzAutomationDscConfiguration per caricare la configurazione nell'account di Automazione.
$importAzAutomationDscConfigurationSplat = @{
SourcePath = 'C:\DscConfigs\TestConfig.ps1'
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Published = $ture
}
Import-AzAutomationDscConfiguration @importAzAutomationDscConfigurationSplat
Compilare una configurazione in una configurazione nodo
Una configurazione DSC deve essere compilata in una configurazione nodo affinché possa essere assegnata a un nodo. Vedere Configurazioni DSC.
Chiamare il cmdlet Start-AzAutomationDscCompilationJob per compilare la configurazione di TestConfig
in una configurazione nodo denominata TestConfig.WebServer
nell'account di Automazione.
$startAzAutomationDscCompilationJobSplat = @{
ConfigurationName = 'TestConfig'
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
}
Start-AzAutomationDscCompilationJob @startAzAutomationDscCompilationJobSplat
Registrare una VM in modo che sia gestita da Configurazione stato
È possibile usare Configurazione stato di Automazione di Azure per gestire macchine virtuali di Azure (sia classiche sia Resource Manager), macchine virtuali locali, computer Linux, macchine virtuali AWS e computer fisici locali. Questo articolo illustra come registrare solo le macchine virtuali di Azure Resource Manager. Per informazioni sulla registrazione di altri tipi di computer, vedere Onboarding di computer per la gestione tramite Configurazione stato di Automazione di Azure.
Chiamare il cmdlet Register-AzAutomationDscNode per registrare la VM con State Configuration di Automazione di Azure come nodo gestito.
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat
Specificare le impostazioni delle modalità di configurazione
Usare il cmdlet Register-AzAutomationDscNode per registrare una macchina virtuale come nodo gestito e specificare le proprietà di configurazione. È ad esempio possibile specificare che lo stato del computer debba essere applicato una sola volta specificando ApplyOnly
come valore della proprietà ConfigurationMode
. State Configuration non prova ad applicare la configurazione dopo il controllo iniziale.
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
ConfigurationMode = 'ApplyOnly'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat```
You can also specify how often DSC checks the configuration state by using the
`ConfigurationModeFrequencyMins` property. For more information about DSC configuration settings,
see [Configuring the Local Configuration Manager][05].
```powershell
# Run a DSC check every 60 minutes
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
ConfigurationModeFrequencyMins = 60
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat```
## Assign a node configuration to a managed node
Now we can assign the compiled node configuration to the VM we want to configure.
```powershell
# Get the ID of the DSC node
$getAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Name = 'DscVm'
}
$node = Get-AzAutomationDscNode @getAzAutomationDscNodeSplat
# Assign the node configuration to the DSC node
$setAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
NodeConfigurationName = 'TestConfig.WebServer'
NodeId = $node.Id
}
Set-AzAutomationDscNode @setAzAutomationDscNodeSplat
In questo modo si assegna la configurazione nodo denominata TestConfig.WebServer
al nodo DSC registrato DscVm
.
Per impostazione predefinita, il nodo DSC viene verificato per la conformità con la configurazione nodo ogni 30 minuti. Per informazioni su come modificare l'intervallo di controllo della conformità, vedere Configuring the Local Configuration Manager (Configurazione di Gestione configurazione locale).
Controllare lo stato di conformità di un nodo gestito
È possibile ottenere report sullo stato di conformità di un nodo gestito usando il cmdlet Get-AzAutomationDscNodeReport.
# Get the ID of the DSC node
$getAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Name = 'DscVm'
}
$node = Get-AzAutomationDscNode @getAzAutomationDscNodeSplat
# Get an array of status reports for the DSC node
$getAzAutomationDscNodeReportSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
NodeId = $node.Id
}
$reports = Get-AzAutomationDscNodeReport @getAzAutomationDscNodeReportSplat
# Display the most recent report
$reports[0]
Passaggi successivi
- Per iniziare, vedere Introduzione a State Configuration di Automazione di Azure.
- Per informazioni su come abilitare i nodi, vedere Abilitare State Configuration di Automazione di Azure.
- Per informazioni sulla compilazione di configurazioni DSC da assegnare ai nodi di destinazione, vedere Compilare configurazioni DSC in State Configuration di Automazione di Azure.
- Per un esempio di uso di Automazione di Azure State Configuration in una pipeline di distribuzione continua, vedere Configurare la distribuzione continua con Chocolatey.
- Per informazioni sui prezzi, vedere Prezzi di State Configuration di Automazione di Azure.
- Per informazioni di riferimento sui cmdlet di PowerShell, vedere Az.Automation.