Présentation du gestionnaire d’extensions de configuration d’état souhaité Microsoft Azure

L’extension Azure VM pour des machines virtuelles Azure et les extensions associées font partie des services d’infrastructure Microsoft Azure. Les extensions de machine virtuelle Azure sont des composants logiciels qui étendent les fonctionnalités d’une machine virtuelle et simplifient ses diverses opérations de gestion.

L’extension Desired State Configuration (DSC) Azure pour Windows PowerShell sert principalement à démarrer une machine virtuelle sur le service Azure Automation State Configuration (DSC). Ce service offre divers avantages, notamment la gestion en continu de la configuration des machines virtuelles et l’intégration à d’autres outils opérationnels, tels qu’Azure Monitor. Vous pouvez utiliser l’extension pour inscrire vos machines virtuelles auprès du service et obtenir une solution flexible qui fonctionne entre les abonnements Azure.

Vous pouvez exécuter l’extension DSC indépendamment du service Automation DSC, mais cette méthode envoie (push) uniquement une configuration à la machine virtuelle. La fonction de création de rapports en continu est uniquement disponible localement, sur la machine virtuelle. Avant d’activer l’extension DSC, passez en revue les versions DSC disponibles et choisissez la version qui prend en charge vos exigences de configuration.

Cet article décrit comment utiliser l’extension DSC pour l’intégration Automation ou l’utiliser comme outil pour attribuer des configurations à des machines virtuelles avec le kit de développement logiciel (SDK) Azure.

Versions DSC disponibles

Plusieurs versions de Desired State Configuration sont disponibles pour une implémentation. Avant d’activer l’extension DSC, choisissez la version DSC qui prend le mieux en charge votre configuration et vos objectifs métier.

Version Disponibilité Description
2.0 Disponibilité générale Desired State Configuration 2.0 est pris en charge pour une utilisation avec la fonctionnalité de configuration d'ordinateur Azure Automanage. La fonctionnalité de configuration d’ordinateur combine les fonctionnalités du gestionnaire d’extension DSC, Azure Automation State Configuration et les fonctionnalités les plus couramment demandées selon les commentaires des clients. La configuration d’ordinateur inclut également la prise en charge des ordinateurs hybrides par le biais des serveurs avec Arc.
1.1 Disponibilité générale Si votre implémentation n’utilise pas la fonctionnalité de configuration d’ordinateur Azure Automanage, vous devez choisir Desired State Configuration 1.1. Pour plus d’informations, consultez PSDesiredStateConfiguration v1.1.
3.0 Préversion publique Desired State Configuration 3.0 est disponible en version bêta publique. Cette version ne doit être utilisée qu’avec la configuration d’ordinateur Azure ou dans des environnements de non-production pour tester la migration à partir de Desired State Configuration 1.1.

Prérequis

  • Ordinateur local : pour interagir avec l’extension Azure DSC, vous devez utiliser le portail Azure ou le kit de développement logiciel (SDK) Azure PowerShell sur l’ordinateur local.

  • Agent invité : la machine virtuelle Azure préparée par la configuration DSC doit utiliser un système d’exploitation prenant en charge Windows Management Framework (WMF) version 4.0 ou ultérieure. Pour la liste complète des versions de système d’exploitation prises en charge, consultez l’historique des versions de l’extension Azure DSC.

Termes et concepts

Cet article part du principe que vous connaissez les concepts suivants :

  • Configuration : fait référence à un document de configuration DSC.

  • Nœud : identifie la cible d’une configuration DSC. Dans cet article, le terme nœud fait toujours référence à une machine virtuelle Azure.

  • Les données de configuration sont stockées dans un fichier au format DSC PowerShell (.psd1) qui contient les données environnementales d’une configuration.

Architecture

L’extension Azure DSC utilise l’infrastructure de l’extension Azure VM pour fournir, mettre en œuvre et créer des rapports sur les configurations DSC sur des machines virtuelles Azure. L’extension DSC accepte un document de configuration et un ensemble de paramètres. Si aucun fichier n’est fourni, un script de configuration par défaut est incorporé avec l’extension. Le script de configuration par défaut est utilisé uniquement pour définir les métadonnées dans le Gestionnaire de configuration local.

Lorsque l’extension est appelée la première fois, elle installe une version de WMF en utilisant la logique suivante :

  • Si le système d’exploitation de la machine virtuelle Azure est Windows Server 2016, aucune action n’est effectuée. En effet, la dernière version de PowerShell est installée sur Windows Server 2016.

  • Si la propriété wmfVersion est spécifiée, la version spécifiée de WMF est installée, sauf si la version spécifiée est incompatible avec le système d’exploitation de la machine virtuelle.

  • Si aucune propriété wmfVersion n’est spécifiée, la dernière version applicable de WMF est installée.

Le processus d’installation de WMF nécessite un redémarrage. Après avoir redémarré, l’extension télécharge le fichier .zip spécifié dans la propriété modulesUrl, s’il est fourni. Si cet emplacement figure dans le stockage Blob Azure, vous pouvez spécifier un jeton SAP dans la propriété sasToken pour accéder au fichier. Après avoir téléchargé et décompressé le .zip, la fonction de configuration définie dans configurationFunction s’exécute pour générer un fichier au format MOF (Managed Object Format) (.mof). Ensuite, l’extension exécute la commande Start-DscConfiguration -Force à l’aide du fichier .mof généré. L’extension capture la sortie et l’écrit dans le canal d’état Azure.

Script de configuration par défaut

L’extension Azure DSC inclut un script de configuration par défaut destiné à être utilisé lorsque vous intégrez une machine virtuelle au service Azure Automation State Configuration. Les paramètres de script sont alignés sur les propriétés configurables du Gestionnaire de configuration local. Pour les paramètres de script, consultez Script de configuration par défaut dans Extension de Desired State Configuration avec des modèles Azure Resource Manager (ARM). Pour le script complet, consultez le Modèle de Démarrage rapide Azure dans GitHub.

Inscription Azure Automation State Configuration

Lorsque vous utilisez l’extension Azure DSC pour inscrire un nœud auprès du service Azure Automation State Configuration, vous fournissez les valeurs suivantes :

  • RegistrationUrl : L’adresse HTTPS du compte Azure Automation.
  • RegistrationKey : Un secret partagé qui est utilisé pour inscrire des nœuds auprès du service.
  • NodeConfigurationName : Le nom de la configuration de nœuds (MOF) à tirer (pull) du service pour configurer le rôle serveur. La valeur est le nom de la configuration des nœuds et non celui de la Configuration.

Vous pouvez collecter ces valeurs à partir du portail Azure ou exécuter les commandes suivantes dans Windows PowerShell :

(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).Endpoint
(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).PrimaryKey

Nom de la configuration de nœuds

Pour le paramètre NodeConfigurationName, assurez-vous de fournir le nom de la configuration du nœud et non celui de la Configuration.

La Configuration est définie dans un script qui est utilisé pour compiler la configuration des nœuds (fichier MOF). Le nom de la configuration du nœud est toujours le nom de la Configuration suivi d’un point . et soit localhost soit un nom d’ordinateur spécifique.

Avertissement

Assurez-vous que la configuration du nœud existe dans Azure Automation State Configuration. Si cette valeur n’existe pas, le déploiement de l’extension renvoie une défaillance.

Déploiement de modèle ARM

L’approche la plus courante pour le déploiement de l’extension DSC consiste à utiliser des modèles Azure Resource Manager. Pour plus d’informations et d’exemples d’inclusion de l’extension DSC dans des modèles ARM, consultez Extension de Desired State Configuration avec des modèles ARM.

Déploiement d’une cmdlet PowerShell

Les cmdlets PowerShell de gestion de l’extension DSC sont idéales dans les scénarios interactifs de résolution de problèmes et de collecte d’informations. Vous pouvez utiliser les applets de commande pour empaqueter, publier et surveiller des déploiements de l’extension DSC. Les cmdlets de l’extension DSC ne sont actuellement pas mises à jour pour fonctionner avec le script de configuration par défaut.

Voici quelques-unes des cmdlets PowerShell disponibles :

  • La cmdlet Publish-AzVMDscConfiguration récupère un fichier de configuration, l'analyse pour y trouver les ressources DSC dépendantes, puis crée un fichier .zip. Le fichier .zip contient la configuration et les ressources DSC nécessaires pour déployer la configuration. La cmdlet peut également créer le package en local en utilisant le paramètre -OutputArchivePath. Dans le cas contraire, la cmdlet publie le fichier .zip dans le stockage Blob et le sécurise avec un jeton SAP.

    Le script de configuration PowerShell (.ps1) créé par la cmdlet se trouve dans le fichier .zip placé à la racine du dossier d’archivage. Le dossier du module est placé dans le dossier d’archivage, sous les ressources.

  • La cmdlet Set-AzVMDscExtension injecte les paramètres nécessaires à l'extension DSC PowerShell dans un objet de configuration de la machine virtuelle.

  • La cmdlet Get-AzVMDscExtension extrait l'état de l'extension DSC d'une machine virtuelle spécifique.

  • La cmdlet Get-AzVMDscExtensionStatus extrait l'état de la configuration DSC imposée par le Gestionnaire d'extensions DSC. Cette action peut être effectuée sur une seule machine virtuelle ou sur un groupe de machines virtuelles.

  • La cmdlet Remove-AzVMDscExtension supprime le Gestionnaire d'extensions d'une machine virtuelle spécifique. Gardez à l’esprit que cette cmdlet ne supprime pas la configuration, ne désinstalle pas WMF et ne modifie pas les paramètres appliqués à la machine virtuelle. La cmdlet ne supprime que le gestionnaire d’extensions.

Considérations importantes

Plusieurs considérations doivent être prises en compte lors de l’utilisation des cmdlets Azure Resource Manager.

  • Les applets de commande Azure Resource Manager sont synchrones.

  • Plusieurs paramètres sont requis, notamment ResourceGroupName, VMName, ArchiveStorageAccountName, Version et Location.

  • ArchiveResourceGroupName est un paramètre facultatif. Spécifiez ce paramètre lorsque votre compte de stockage appartient à un groupe de ressources différent de celui dans lequel la machine virtuelle est créée.

  • Utilisez le commutateur AutoUpdate pour mettre automatiquement à jour le gestionnaire d’extensions vers la dernière version dès que celle-ci est disponible. Ce paramètre peut entraîner des redémarrages sur la machine virtuelle lors de la publication d’une nouvelle version de WMF.

Configuration avec des cmdlets PowerShell

L’extension DSC Azure peut utiliser des documents de configuration DSC pour configurer directement des machines virtuelles Azure pendant le déploiement. Cette étape n’enregistre pas le nœud auprès d’Automation. Gardez à l’esprit que le nœud n’est pas managé de manière centralisée.

Le code suivant montre un exemple simple de configuration. Pour utiliser cet exemple, enregistrez cette configuration localement en tant que fichier de script iisInstall.ps1.

configuration IISInstall
{
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

Les commandes PowerShell suivantes placent le script iisInstall.ps1 sur la machine virtuelle spécifiée. Les commandes exécutent également la configuration, puis génèrent un rapport d’état.

$resourceGroup = 'dscVmDemo'
$vmName = 'myVM'
$storageName = 'demostorage'
#Publish the configuration script to user storage
Publish-AzVMDscConfiguration -ConfigurationPath .\iisInstall.ps1 -ResourceGroupName $resourceGroup -StorageAccountName $storageName -force
#Set the VM to run the DSC configuration
Set-AzVMDscExtension -Version '2.76' -ResourceGroupName $resourceGroup -VMName $vmName -ArchiveStorageAccountName $storageName -ArchiveBlobName 'iisInstall.ps1.zip' -AutoUpdate -ConfigurationName 'IISInstall'

Déploiement de l’interface de ligne de commande Azure

Vous pouvez utiliser Azure CLI pour déployer l’extension DSC sur une machine virtuelle existante. Les exemples suivants montrent comment déployer une machine virtuelle sur Windows.

Pour une machine virtuelle fonctionnant sous Windows, utilisez la commande suivante :

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name DSC \
  --publisher Microsoft.Powershell \
  --version 2.77 --protected-settings '{}' \
  --settings '{}'

Déploiement du portail Azure

Pour configurer l’extension DSC dans le portail Azure, procédez comme suit :

  1. Accédez à une machine virtuelle.

  2. Sous Paramètres, sélectionnez Extensions + Applications.

  3. Sous Extensions, sélectionnez + Ajouter.

  4. Sélectionnez PowerShell Desired State Configuration, puis Suivant.

  5. Configurez les paramètres suivants pour l’extension DSC.

    Notes

    Si vous utilisez un script de configuration par défaut, gardez à l’esprit que la plupart des paramètres suivants doivent être définis directement dans le portail Azure plutôt que via le script.

    • Modules de configuration ou Script : (Obligatoire) Fournissez les modules de configuration ou le fichier de script à votre machine virtuelle.

      Les scripts et modules de configuration nécessitent un fichier .ps1 qui contient un script de configuration ou un fichier .zip avec un script de configuration .ps1 à la racine. Si vous utilisez un fichier .zip, toutes les ressources dépendantes doivent figurer dans les dossiers de module du fichier .zip. Vous pouvez créer le fichier .zip à l’aide de la cmdlet Publish-AzureVMDscConfiguration -OutputArchivePath incluse dans le Kit de développement logiciel (SDK) Azure PowerShell. Le fichier .zip est chargé dans votre stockage Blob d’utilisateur et sécurisé par un jeton SAP.

    • Nom de la configuration qualifié par le module : (Obligatoire) Spécifiez ce paramètre pour inclure plusieurs fonctions de configuration dans un seul fichier de script .ps1. Pour ce paramètre, entrez le nom du fichier de script .ps1 de la configuration suivi d’un slash \ et du nom de la fonction de configuration. Par exemple, si le fichier de script .ps1 porte le nom configuration.ps1 et que le nom de la configuration est IisInstall, entrez la valeur configuration.ps1\IisInstall pour le paramètre.

    • Arguments de configuration : si la fonction de configuration prend des arguments, entrez leurs valeurs ici au format argumentName1=value1,argumentName2=value2. Notez que ce format diffère du format utilisé pour spécifier les arguments de configuration dans les cmdlets PowerShell ou les modèles ARM.

      Notes

      Les arguments de configuration peuvent être définis dans un script de configuration par défaut.

    • Fichier PSD1 de données de configuration : si votre configuration nécessite un fichier de données de configuration au format .psd1, utilisez ce paramètre pour sélectionner le fichier de données et le charger dans votre stockage Blob d’utilisateur. Le fichier de données de configuration est sécurisé avec un jeton SAP dans le stockage Blob.

    • Version WMF : spécifie la version de Windows Management Framework (WMF) à installer sur votre machine virtuelle. Si vous choisissez la dernière, qui est la valeur par défaut, le système installe la version la plus récente de WMF. Les autres valeurs possibles incluent 4.0, 5.0 et 5.1. Les valeurs possibles font l’objet de mises à jour.

    • Collecte de données : activez ce paramètre si vous souhaitez que l’extension DSC collecte des données de télémétrie sur votre machine virtuelle. Pour plus d’informations, consultez la page Azure DSC Extension Data Collection (Collection de données d’extension Azure DSC).

    • Version : (Obligatoire) spécifie la version de l’extension DSC à installer. Pour obtenir plus d’informations sur les versions, consultez Historique des versions de l’extension Azure DSC.

    • Mise à niveau automatique de la version secondaire : ce paramètre correspond au commutateur AutoUpdate des cmdlets. Configurez ce paramètre pour activer la mise à jour automatique de l’extension DSC vers la dernière version lors de l’installation. Oui indique au gestionnaire d’extension DSC d’utiliser la dernière version disponible. Non (valeur par défaut) force l’installation de la version que vous spécifiez dans le paramètre Version.

  6. Après avoir configuré les paramètres, sélectionnez Vérifier + Créer, puis Créer.

Journaux d’extension DSC

Vous pouvez afficher les journaux de l’extension Azure DSC sur la machine virtuelle sous C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\<version number>.

Étapes suivantes