Guide pratique pour tester des artefacts de package de configuration de machine

Le module PowerShell GuestConfiguration inclut des outils permettant d’automatiser le test d’un package de configuration en dehors de Azure. Servez-vous de ces outils pour détecter des problèmes et effectuer des itérations rapides avant de passer à la phase de test dans un environnement connecté à Azure ou Arc.

Avant de commencer les tests, vous devez configurer votre environnement de création et créer un artefact de package de configuration d’ordinateur personnalisé.

Important

Les packages personnalisés qui auditent l’état d’un environnement et appliquent des configurations sont à l’état de prise en charge en disponibilité générale. Toutefois, les limites suivantes s’appliquent :

Pour utiliser les packages de configuration d’ordinateur qui appliquent des configurations, l’extension de configuration invitée de la machine virtuelle Azure version 1.26.24 (ou une version ultérieure) ou l’agent Arc version 1.10.0 (ou une version ultérieure) est requis.

Le module GuestConfiguration est disponible uniquement sur Ubuntu 18 et versions ultérieures. Toutefois, vous pouvez utiliser le package et les stratégies produits par le module sur n’importe quelle distribution/version de Linux prise en charge dans Azure ou Arc.

Les packages de test sur macOS ne sont pas disponibles.

Vous pouvez tester le package à partir de votre station de travail ou de votre environnement d’intégration continue et livraison continue (CI/CD). Le module GuestConfiguration comprend inclut le même agent pour votre environnement de développement que celui utilisé dans des machines avec Azure ou Arc. L’agent inclut une instance autonome de PowerShell 7.1.3 pour Windows et 7.2.0-preview.7 pour Linux. L’instance autonome s’assure que l’environnement de script où le package est testé est cohérent avec les machines que vous gérez à l'aide de la configuration d’ordinateur.

Le service de l’agent dans les machines avec Azure et Arc s’exécute en tant que compte LocalSystem dans Windows et Root dans Linux. Pour obtenir des résultats optimaux, exécutez les commandes de cet article dans un contexte de sécurité privilégié.

Pour exécuter PowerShell en tant que LocalSystem dans Windows, utilisez l’outil SysInternals PSExec.

Pour exécuter PowerShell en tant que Root dans Linux, utilisez la commande sudo.

Valider la conformité du package de configuration aux exigences

Commencez par tester si le package de configuration est conforme aux exigences de base à l’aide de la commande Get-GuestConfigurationPackageComplianceStatus. Celle-ci vérifie les exigences de package suivantes.

  • MOF est présent et valide, à l’emplacement approprié.
  • Les modules/dépendances requis sont présents, de la bonne version et sans doublons.
  • Le package est signé (facultatif).
  • Les demandes Test et Get renvoient des informations sur l’état de conformité.

Paramètres de la cmdlet Get-GuestConfigurationPackageComplianceStatus :

  • Chemin : chemin de fichier ou URI du package de configuration de la machine.
  • Paramètre : paramètres de stratégie fournis sous forme de table de hachage.

Lors de la première exécution de cette commande, l’agent de configuration de la machine est installé sur la machine de test dans le chemin d’accès C:\ProgramData\GuestConfig\bin sur Windows, et /var/lib/GuestConfig/bin sur Linux. Ce chemin d’accès n’étant pas accessible à un compte d’utilisateur, la commande nécessite une élévation de privilèges.

Exécutez la commande suivante pour tester le package :

Dans Windows, à partir d’une session PowerShell 7 avec élévation de privilèges.

# Get the current compliance results for the local machine
Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip

Dans Linux, en exécutant PowerShell à l’aide de sudo.

# Get the current compliance results for the local machine
sudo pwsh -command 'Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip'

La sortie de la commande est un objet contenant l’état de conformité et des détails par ressource.

  complianceStatus  resources
  ----------------  ---------
  True              @{BuiltInAccount=localSystem; ConfigurationName=MyConfig; …

Tester que le package de configuration peut appliquer une configuration

Enfin, si le mode du package de configuration est AuditandSet, vous pouvez tester le fait que la méthode Set peut appliquer des paramètres à une machine locale à l’aide de la commande Start-GuestConfigurationPackageRemediation.

Important

Cette commande tente d’apporter des modifications dans l’environnement local où elle est exécutée.

Paramètres de la cmdlet Start-GuestConfigurationPackageRemediation :

  • Chemin : Chemin complet du paquet de configuration de la machine.

Dans Windows, à partir d’une session PowerShell 7 avec élévation de privilèges.

# Test applying the configuration to local machine
Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip

Dans Linux, en exécutant PowerShell à l’aide de sudo.

# Test applying the configuration to local machine
sudo pwsh -command 'Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip'

La commande retourne uniquement la sortie en cas d’erreurs. Pour obtenir des détails sur la résolution de problèmes relatifs aux événements qui se produisent pendant l’exécution de la commande Set, utilisez le paramètre -verbose.

Après avoir exécuté la commande Start-GuestConfigurationPackageRemediation, vous pouvez exécuter la commande Get-GuestConfigurationComplianceStatus pour confirmer que l’ordinateur est désormais dans l’état approprié.

Étape suivante