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 enGet
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 Set
tijdens.
Nadat u de opdracht Start-GuestConfigurationPackageRemediation
hebt uitgevoerd, kunt u de opdracht Get-GuestConfigurationComplianceStatus
opnieuw uitvoeren om te bevestigen dat de machine nu de juiste status heeft.