Come testare gli artefatti del pacchetto di configurazione del computer
Il modulo Di PowerShell GuestConfiguration include strumenti per automatizzare il test di un pacchetto di configurazione all'esterno di Azure. Usare questi strumenti per individuare i problemi e scorrere rapidamente prima di procedere al test in un ambiente connesso ad Azure o Arc.
Prima di iniziare il test, è necessario configurare l'ambiente di creazione e creare un elemento del pacchetto di configurazione del computer personalizzato.
Importante
I pacchetti personalizzati che controllano lo stato di un ambiente e applicano le configurazioni sono in stato di supporto disponibile a livello generale. Tuttavia, si applicano le seguenti limitazioni:
Per usare i pacchetti di configurazione del computer che applicano configurazioni, è necessaria l'estensione di configurazione guest della macchina virtuale di Azure versione 1.26.24 o successiva oppure l'agente Arc 1.10.0 o versione successiva.
Il modulo GuestConfiguration è disponibile solo in Ubuntu 18 e versioni successive. Tuttavia, il pacchetto e i criteri prodotti dal modulo possono essere usati in qualsiasi distribuzione/versione linux supportata in Azure o Arc.
I pacchetti di test in macOS non sono disponibili.
È possibile testare il pacchetto dalla workstation o dall'ambiente di integrazione continua e distribuzione continua (CI/CD). Il modulo GuestConfiguration include lo stesso agente per l'ambiente di sviluppo usato nei computer abilitati per Azure o Arc. L'agente include un'istanza autonoma di PowerShell 7.1.3 per Windows e 7.2.0-preview.7 per Linux. L'istanza autonoma garantisce che l'ambiente di script in cui viene testato il pacchetto sia coerente con i computer gestiti tramite la configurazione del computer.
Il servizio agente nei computer abilitati per Azure e Arc è in esecuzione come LocalSystem
account in Windows e Root in Linux. Eseguire i comandi in questo articolo in un contesto di sicurezza con privilegi per ottenere risultati ottimali.
Per eseguire PowerShell come LocalSystem
in Windows, usare lo strumento SysInternals P edizione Standard xec.
Per eseguire PowerShell come radice in Linux, usare il comando sudo.
Prima di tutto verificare che il pacchetto di configurazione soddisfi i requisiti di base usando Get-GuestConfigurationPackageComplianceStatus
. Il comando verifica i requisiti del pacchetto seguenti.
- MOF è presente e valido, nella posizione corretta
- I moduli/dipendenze obbligatori sono presenti con la versione corretta, senza duplicati
- Convalidare che il pacchetto sia firmato (facoltativo)
- Verificare che
Test
eGet
restituire informazioni sullo stato di conformità
Parametri del cmdlet Get-GuestConfigurationPackageComplianceStatus
:
- Percorso: percorso file o URI del pacchetto di configurazione del computer.
- Parametro: parametri dei criteri forniti come tabella hash.
Quando questo comando viene eseguito per la prima volta, l'agente di configurazione del computer viene installato nel computer di test nel percorso C:\ProgramData\GuestConfig\bin
in Windows e /var/lib/GuestConfig/bin
in Linux. Questo percorso non è accessibile a un account utente, quindi il comando richiede l'elevazione dei privilegi.
Eseguire il comando seguente per testare il pacchetto:
In Windows, da una sessione di PowerShell 7 con privilegi elevati.
# Get the current compliance results for the local machine
Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip
In Linux eseguire PowerShell usando sudo.
# Get the current compliance results for the local machine
sudo pwsh -command 'Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip'
Il comando restituisce un oggetto contenente lo stato di conformità e i dettagli per ogni risorsa.
complianceStatus resources
---------------- ---------
True @{BuiltInAccount=localSystem; ConfigurationName=MyConfig; …
Infine, se la modalità del pacchetto di configurazione è AuditandSet
possibile verificare che il Set
metodo possa applicare le impostazioni a un computer locale usando il comando Start-GuestConfigurationPackageRemediation
.
Importante
Questo comando tenta di apportare modifiche nell'ambiente locale in cui viene eseguito.
Parametri del cmdlet Start-GuestConfigurationPackageRemediation
:
- Percorso: percorso completo del pacchetto di configurazione del computer.
In Windows, da una sessione di PowerShell 7 con privilegi elevati.
# Test applying the configuration to local machine
Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip
In Linux eseguire PowerShell usando sudo.
# Test applying the configuration to local machine
sudo pwsh -command 'Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip'
Il comando restituisce l'output solo quando si verificano errori. Per risolvere i problemi relativi agli eventi che si verificano durante Set
, usare il -verbose
parametro .
Dopo aver eseguito il comando Start-GuestConfigurationPackageRemediation
, è possibile eseguire di nuovo il comando Get-GuestConfigurationComplianceStatus
per verificare che il computer sia ora nello stato corretto.