Share via


Configuratiepakketartefacten voor machines testen

De PowerShell-module GuestConfiguration bevat hulpprogramma's voor het automatiseren van het testen van een configuratiepakket buiten Azure. Gebruik deze hulpprogramma's om problemen te vinden en snel te herhalen voordat u verdergaat met testen in een met Azure of Arc verbonden omgeving.

Voordat u kunt beginnen met testen, moet u uw ontwerpomgeving instellen en een aangepast apparaatconfiguratiepakketartefact maken.

Belangrijk

Aangepaste pakketten die de status van een omgeving controleren en configuraties toepassen, hebben de ondersteuningsstatus Algemeen beschikbaar. De volgende beperkingen zijn echter van toepassing:

Als u machineconfiguratiepakketten wilt gebruiken die configuraties toepassen, is versie 1.26.24 of hoger van azure VM-gastconfiguratie, of Arc-agent 1.10.0 of hoger vereist.

De GuestConfiguration-module is alleen beschikbaar op Ubuntu 18 en hoger. Het pakket en beleid dat door de module wordt geproduceerd, kunnen echter worden gebruikt voor elke Linux-distributie/versie die wordt ondersteund in Azure of Arc.

Het testen van pakketten in macOS is niet beschikbaar.

U kunt het pakket testen vanuit uw werkstation of een CI/CD-omgeving (continue integratie en continue implementatie). De GuestConfiguration-module bevat dezelfde agent voor uw ontwikkelomgeving als die wordt gebruikt in machines met Azure of Arc. De agent bevat een zelfstandig exemplaar van PowerShell 7.1.3 voor Windows en 7.2.0-preview.7 voor Linux. Het zelfstandige exemplaar zorgt ervoor dat de scriptomgeving waarin het pakket wordt getest, consistent is met machines die u beheert met behulp van machineconfiguratie.

De agentservice in Azure- en Arc-machines wordt uitgevoerd als het LocalSystem account in Windows en Root in Linux. Voer de opdrachten in dit artikel uit in een bevoegde beveiligingscontext voor de beste resultaten.

Als u PowerShell wilt uitvoeren zoals LocalSystem in Windows, gebruikt u het hulpprogramma SysInternals PSExec.

Als u PowerShell wilt uitvoeren als root in Linux, gebruikt u de sudo-opdracht.

Valideren dat het configuratiepakket voldoet aan de vereisten

Test eerst of het configuratiepakket voldoet aan de basisvereisten met behulp van Get-GuestConfigurationPackageComplianceStatus. De opdracht controleert de volgende pakketvereisten.

  • MOF is aanwezig en geldig, op de juiste locatie
  • Vereiste modules/afhankelijkheden zijn aanwezig met de juiste versie, zonder duplicaten
  • Valideren dat het pakket is ondertekend (optioneel)
  • Test Dat testen en Get informatie retourneren over de nalevingsstatus

Parameters van de Get-GuestConfigurationPackageComplianceStatus cmdlet:

  • Pad: bestandspad of URI van het configuratiepakket van de machine.
  • Parameter: Beleidsparameters die zijn opgegeven als een hash-tabel.

Wanneer deze opdracht voor het eerst wordt uitgevoerd, wordt de machineconfiguratieagent geïnstalleerd op de testmachine op het pad C:\ProgramData\GuestConfig\bin in Windows en /var/lib/GuestConfig/bin linux. Dit pad is niet toegankelijk voor een gebruikersaccount, dus de opdracht vereist uitbreiding.

Voer de volgende opdracht uit om het pakket te testen:

In Windows, vanuit een PowerShell 7-sessie met verhoogde bevoegdheid.

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

In Linux, door PowerShell uit te voeren met sudo.

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

Met de opdracht wordt een object uitgevoerd met de nalevingsstatus en details per resource.

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

Het configuratiepakket testen kan een configuratie toepassen

Ten slotte kunt u, als de configuratiepakketmodus is AuditandSet , testen of de Set methode instellingen op een lokale computer kan toepassen met behulp van de opdracht Start-GuestConfigurationPackageRemediation.

Belangrijk

Met deze opdracht wordt geprobeerd wijzigingen aan te brengen in de lokale omgeving waar deze wordt uitgevoerd.

Parameters van de Start-GuestConfigurationPackageRemediation cmdlet:

  • Pad: volledig pad van het configuratiepakket voor de machine.

In Windows, vanuit een PowerShell 7-sessie met verhoogde bevoegdheid.

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

In Linux, door PowerShell uit te voeren met sudo.

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

De opdracht retourneert alleen uitvoer wanneer er fouten optreden. Gebruik de -verbose parameter om details over gebeurtenissen op te lossen die zich voordoen Settijdens.

Nadat u de opdracht Start-GuestConfigurationPackageRemediationhebt uitgevoerd, kunt u de opdracht Get-GuestConfigurationComplianceStatus opnieuw uitvoeren om te bevestigen dat de machine nu de juiste status heeft.

Volgende stap