Partager via


Configurer les machines à l’état souhaité

Remarque

Azure Automation State Configuration sera mise hors service le 30 septembre 2027. Veuillez passer à Azure Machine Configuration avant cette date. Pour en savoir plus, consultez l’annonce du billet de blog. Le service Azure Machine Configuration combine les fonctionnalités d’Extension DSC, d’Azure Automation State Configuration, ainsi que les fonctionnalités les plus couramment demandées selon les commentaires des clients. Azure Machine Configuration inclut également la prise en charge des ordinateurs hybrides via des serveurs avec Arc.

Attention

Azure Automation DSC pour Linux a été mis hors service le 30 septembre 2023. Pour plus d'informations, consultez Annonce.

Azure Automation State Configuration vous permet de spécifier des configurations pour vos serveurs et de vérifier que leur état ainsi défini perdure dans le temps.

  • Intégrer une machine virtuelle à gérer par Azure Automation DSC
  • Charger une configuration dans Azure Automation
  • Compiler une configuration dans une configuration de nœud
  • Attribuer une configuration de nœud à un nœud géré
  • Vérifier l’état de conformité d’un nœud géré

Dans ce tutoriel, nous utilisons une configuration DSC simple qui permet de veiller à ce qu’IIS soit installé sur la machine virtuelle.

Prérequis

Prise en charge des configurations partielles

Azure Automation State Configuration prend en charge l’utilisation de configurations partielles. Dans ce scénario, DSC est configuré pour gérer plusieurs configurations de manière indépendante, et chaque configuration est récupérée à partir d’Azure Automation. Toutefois, on ne peut affecter qu’une seule configuration à un nœud par compte Automation. Si vous utilisez deux configurations pour un nœud, cela signifie qu’il vous faut deux comptes Automation.

Pour savoir comment inscrire une configuration partielle à partir d’un service Pull, consultez la documentation relative aux configurations partielles.

Pour plus d’informations sur la collaboration possible entre équipes dans le but de gérer les serveurs avec la configuration en tant que code, consultez Présentation du rôle de la configuration DSC dans un pipeline CI/CD.

Connexion à Azure

Connectez-vous à votre abonnement Azure avec la cmdlet Connect-AzAccount et suivez les instructions affichées à l’écran.

Connect-AzAccount

Créer et charger une configuration dans Azure Automation

Dans un éditeur de texte, tapez le code suivant et enregistrez-le localement sous le nom TestConfig.ps1.

configuration TestConfig {
   Node WebServer {
      WindowsFeature IIS {
         Ensure               = 'Present'
         Name                 = 'Web-Server'
         IncludeAllSubFeature = $true
      }
   }
}

Remarque

Les noms de configuration dans Azure Automation doivent être limités à 100 caractères.

Dans les scénarios plus avancés où vous devez importer plusieurs modules qui fournissent des ressources DSC, vérifiez que chaque module a une ligne Import-DscResource unique dans votre configuration.

Appelez la cmdlet Import-AzAutomationDscConfiguration pour charger la configuration dans votre compte Automation.

$importAzAutomationDscConfigurationSplat = @{
    SourcePath = 'C:\DscConfigs\TestConfig.ps1'
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
    Published = $ture
}
Import-AzAutomationDscConfiguration @importAzAutomationDscConfigurationSplat

Compiler une configuration dans une configuration de nœud

Une configuration DSC doit être compilée dans une configuration de nœud avant de pouvoir être affectée à un nœud. Consultez Configurations DSC.

Appelez la cmdlet Start-AzAutomationDscCompilationJob pour compiler la configuration TestConfig dans une configuration de nœud nommée TestConfig.WebServer au sein de votre compte Automation.

$startAzAutomationDscCompilationJobSplat = @{
    ConfigurationName = 'TestConfig'
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
}
Start-AzAutomationDscCompilationJob @startAzAutomationDscCompilationJobSplat

Inscrire une machine virtuelle devant être gérée par State Configuration

Azure Automation State Configuration vous permet de gérer vos machines virtuelles Azure (par le biais des modèles de déploiement classique et Resource Manager), vos machines virtuelles locales, vos machines Linux, vos machines virtuelles AWS et vos ordinateurs physiques en local. Dans cet article, nous voyons comment inscrire uniquement des machines virtuelles Azure Resource Manager. Pour plus d’informations sur l’inscription d’autres types de machines, consultez Intégration de machines pour la gestion avec Azure Automation State Configuration.

Appelez la cmdlet Register-AzAutomationDscNode pour inscrire votre machine virtuelle auprès d’Azure Automation State Configuration en tant que nœud géré.

$registerAzAutomationDscNodeSplat = @{
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
    AzureVMName = 'DscVm'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat

Spécifier les paramètres du mode de configuration

Utilisez la cmdlet Register-AzAutomationDscNode pour inscrire une machine virtuelle en tant que nœud géré et indiquer des propriétés de configuration. Par exemple, vous pouvez spécifier que l’état de la machine ne doit être appliqué qu’une seule fois en choisissant ApplyOnly comme valeur de la propriété ConfigurationMode. State Configuration n’essaie pas d’appliquer la configuration après la vérification initiale.

$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

Cette opération attribue la configuration de nœud nommée TestConfig.WebServer au nœud DSC inscrit DscVm. Par défaut, le nœud DSC est vérifié pour la conformité avec la configuration de nœud toutes les 30 minutes. Pour obtenir des informations sur la modification de l’intervalle de vérification de conformité, consultez Configuration du Gestionnaire de configuration local.

Vérifier l’état de conformité d’un nœud géré

Pour obtenir des rapports sur l’état de conformité d’un nœud géré, utilisez la 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]

Étapes suivantes