Condividi tramite


Configurare i computer allo stato desiderato

Nota

Il servizio State Configuration di Automazione di Azure verrà ritirato il 30 settembre 2027, eseguire il passaggio a Configurazione macchina di Azure entro tale data. Per altre informazioni, vedere l'annuncio del blog. Il servizio Configurazione computer Azure combina le funzionalità dell'estensione DSC, Automazione di Azure State Configuration e le funzionalità più comunemente richieste dai clienti. Azure Configurazione Macchine include anche il supporto di macchine ibride tramite server con abilitazione Arc.

Importante

Il link di navigazione Aggiungi, Configurazione Compose e Galleria verranno rimossi dal portale il 31 marzo 2025.

Attenzione

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

Automazione di Azure State Configuration consente di specificare le configurazioni per i server e assicurarsi che tali server si trovino nello stato specificato nel tempo.

  • Eseguire l'onboarding di una macchina virtuale da gestire da Automazione di Azure DSC
  • Caricare una configurazione in Automazione di Azure
  • Compilare una configurazione in una configurazione di nodo
  • Assegnare una configurazione di 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

Nota

Windows Server 2008 e Windows Server 2008 R2 hanno raggiunto la fine del supporto (EOS). Per altre informazioni, vedere Fine del supporto per Windows Server 2008 e Windows Server 2008 R2 e Effettuare l'aggiornamento sul posto a Windows Server 2016, 2019, 2022 o 2025. Esaminare di conseguenza l'utilizzo e pianificare gli aggiornamenti e le migrazioni del sistema operativo.

Supporto di configurazioni parziali

Automazione di Azure State Configuration 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 a Azure

Accedere alla sottoscrizione 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 = $true
}
Import-AzAutomationDscConfiguration @importAzAutomationDscConfigurationSplat

Compilare una configurazione in una configurazione di 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 macchina virtuale da gestire da State Configuration

È possibile usare Automazione di Azure State Configuration per gestire Azure macchine virtuali (sia classiche che Resource Manager), macchine virtuali locali, computer Linux, macchine virtuali AWS e computer fisici locali. In questo articolo viene illustrato come registrare solo Azure Resource Manager macchine virtuali. 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 macchina virtuale con Automazione di Azure State Configuration 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 tenta di 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 di conformità, vedere Configuring the Local Gestione configurazione.

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