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
- Un compte Azure Automation. Pour en savoir plus sur un compte Automation et ses exigences, consultez Vue d’ensemble de l’authentification du compte Automation.
- Une machine virtuelle Azure Resource Manager (et non Classic) fonctionnant sur Windows Server 2008 R2 ou version ultérieure. Pour obtenir des instructions sur la création d’une machine virtuelle, consultez Création d’une première machine virtuelle Windows sur le Portail Azure.
- Module Azure PowerShell, version 3.6 ou ultérieure. Exécutez
Get-Module -ListAvailable Az
pour trouver la version. Si vous devez effectuer une mise à niveau, consultez Installer le module Azure PowerShell. - Des notions de base de la configuration de l’état souhaité. Pour plus d’informations sur la configuration DSC, consultez Vue d’ensemble de la fonctionnalité Desired State Configuration de Windows PowerShell.
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
- Pour commencer, consultez Bien démarrer avec Azure Automation State Configuration.
- Pour savoir comment activer des nœuds, consultez Activer State Configuration.
- Pour découvrir comment compiler des configurations DSC pour pouvoir les affecter à des nœuds cibles, consultez Compiler des configurations DSC dans Azure Automation State Configuration.
- Pour voir un exemple d’utilisation d’Azure Automation State Configuration dans un pipeline de déploiement continu, consultez Configurer un déploiement continu avec Chocolatey.
- Pour obtenir des informations sur les prix, consultez Tarification d’Azure Automation State Configuration.
- Pour obtenir des informations de référence sur les cmdlets PowerShell, consultez Az.Automation.