Configurare i computer allo stato desiderato

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

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, saranno 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

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.

 Import-AzAutomationDscConfiguration -SourcePath 'C:\DscConfigs\TestConfig.ps1' -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Published

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.

Start-AzAutomationDscCompilationJob -ConfigurationName 'TestConfig' -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount'

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 argomento descrive soltanto come registrare VM 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.

Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm'

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.

Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm' -ConfigurationMode 'ApplyOnly'

È anche possibile specificare la frequenza con cui DSC controlla lo stato della configurazione usando la proprietà ConfigurationModeFrequencyMins. Per altre informazioni sulle impostazioni di configurazione DSC, vedere Configuring the Local Configuration Manager(Configurazione di Gestione configurazione locale).

# Run a DSC check every 60 minutes
Register-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -AzureVMName 'DscVm' -ConfigurationModeFrequencyMins 60

Assegnare una configurazione nodo a un nodo gestito

Ora è possibile assegnare la configurazione nodo compilata alla VM che si vuole configurare.

# Get the ID of the DSC node
$node = Get-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Name 'DscVm'

# Assign the node configuration to the DSC node
Set-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -NodeConfigurationName 'TestConfig.WebServer' -NodeId $node.Id

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
$node = Get-AzAutomationDscNode -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -Name 'DscVm'

# Get an array of status reports for the DSC node
$reports = Get-AzAutomationDscNodeReport -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'myAutomationAccount' -NodeId $node.Id

# Display the most recent report
$reports[0]

Passaggi successivi