Come creare artefatti del pacchetto di configurazione del computer personalizzato

Prima di iniziare, è consigliabile leggere la pagina di panoramica per la configurazione del computer.

La configurazione del computer usa DSC (Desired State Configuration ) durante il controllo e la configurazione di Windows e Linux. La configurazione DSC definisce la condizione in cui deve trovarsi il computer.

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 e versione linux supportata in Azure o Arc.

I pacchetti di test in macOS non sono disponibili.

Non usare segreti o informazioni riservate nei pacchetti di contenuto personalizzati.

Usare la procedura seguente per creare una configurazione personalizzata per la gestione dello stato di un computer Azure o non Azure.

Installare PowerShell 7 e i moduli di PowerShell necessari

Prima di tutto, seguire la procedura descritta in Come configurare un ambiente di creazione della configurazione del computer. Questi passaggi consentono di installare la versione necessaria di PowerShell per il sistema operativo, il modulo GuestConfiguration e il modulo PSDesiredStateConfiguration .

Creare una configurazione

Prima di creare un pacchetto di configurazione, creare e compilare una configurazione DSC. Le configurazioni di esempio sono disponibili per Windows e Linux.

Importante

Quando si compilano configurazioni per Windows, usare PSDesiredStateConfiguration versione 2.0.7 (versione stabile). Quando si compilano configurazioni per Linux, installare la versione non definitiva 3.0.0.

Questa configurazione di esempio è per i computer Windows. Configura il computer per creare la MC_ENV_EXAMPLE variabile di ambiente negli Process ambiti e Machine . Il valore della variabile imposta su 'This was set by machine configuration'.

Configuration MyConfig {
    Import-DscResource -Name 'Environment' -ModuleName 'PSDscResources'
    Environment MachineConfigurationExample {
        Name   = 'MC_ENV_EXAMPLE'
        Value  = 'This was set by machine configuration'
        Ensure = 'Present'
        Target = @('Process', 'Machine')
    }
}

MyConfig

Con tale definizione salvata nel MyConfig.ps1 file di script, è possibile eseguire lo script per compilare la configurazione.

. .\MyConfig.ps1
    Directory: C:\dsc\MyConfig

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           5/16/2023 10:39 AM           1080 localhost.mof

La configurazione viene compilata nel localhost.mof file nella MyConfig cartella nella directory di lavoro corrente. Rinominare localhost.mof il nome da usare come nome del pacchetto, ad esempio MyConfig.mof.

Rename-Item -Path .\MyConfig\localhost.mof -NewName MyConfig.mof -PassThru
    Directory: C:\dsc\MyConfig

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           5/16/2023 10:40 AM           1080 MyConfig.mof

Nota

Questo esempio illustra come creare e compilare una configurazione per un computer Windows. Per Linux, è necessario creare un modulo di risorse DSC personalizzato usando le classi di PowerShell. L'articolo Scrittura di una risorsa DSC personalizzata con classi di PowerShell include un esempio completo di una risorsa e una configurazione personalizzata, testata con la configurazione del computer.

Il resto di questo articolo si applica alle configurazioni definite per i computer Linux e Windows, ad eccezione dei casi in cui vengono menzionate considerazioni specifiche della piattaforma.

Creare un elemento del pacchetto di configurazione

Una volta compilato il file MOF, è necessario creare un pacchetto con i file di supporto. Il pacchetto completato viene usato dalla configurazione del computer per creare le definizioni di Criteri di Azure.

Il cmdlet New-GuestConfigurationPackage crea il pacchetto. I moduli richiesti dalla configurazione devono essere disponibili in $Env:PSModulePath per l'ambiente di sviluppo, in modo che i comandi nel modulo possano aggiungerli al pacchetto.

Parametri del cmdlet New-GuestConfigurationPackage durante la creazione del contenuto Windows:

  • Nome: nome del pacchetto di configurazione del computer.
  • Configurazione: percorso completo del documento di configurazione DSC compilato.
  • Percorso: percorso della cartella di output. Il parametro è facoltativo. Se non viene specificato, il pacchetto viene creato nella directory corrente.
  • Tipo: (Audit, AuditandSet) Determina se la configurazione deve controllare solo o se la configurazione deve modificare lo stato del computer se non è nello stato desiderato. Il valore predefinito è Audit.

Questo passaggio non richiede l'elevazione dei privilegi. Il parametro Force viene usato per sovrascrivere i pacchetti esistenti, se si esegue il comando più volte.

I comandi seguenti creano un artefatto del pacchetto:

# Create a package that will only audit compliance
$params = @{
    Name          = 'MyConfig'
    Configuration = './MyConfig/MyConfig.mof'
    Type          = 'Audit'
    Force         = $true
}
New-GuestConfigurationPackage @params
# Create a package that will audit and apply the configuration (Set)
$params = @{
    Name          = 'MyConfig'
    Configuration = './MyConfig/MyConfig.mof'
    Type          = 'AuditAndSet'
    Force         = $true
}
New-GuestConfigurationPackage @params

Viene restituito un oggetto con il nome e il percorso del pacchetto creato.

Name     Path
----     ----
MyConfig C:\dsc\MyConfig.zip

Contenuto previsto di un artefatto di configurazione del computer

Il pacchetto completato viene usato dalla configurazione del computer per creare le definizioni di Criteri di Azure. Il pacchetto è costituito da:

  • Configurazione DSC compilata come file MOF
  • Cartella Modules
    • Modulo GuestConfiguration
    • Modulo DscNativeResources
    • Moduli di risorse DSC richiesti da MOF
  • Un file metaconfig che archivia il pacchetto type e version

Il cmdlet di PowerShell crea il file del pacchetto .zip . Non è necessaria alcuna cartella di livello radice o cartella delle versioni. Il formato del pacchetto deve essere un .zip file e non può superare una dimensione totale di 100 MB quando non è compresso.

È possibile espandere l'archivio per esaminarlo usando il Expand-Archive cmdlet .

Expand-Archive -Path .\MyConfig.zip -DestinationPath MyConfigZip

È possibile ottenere le dimensioni totali del pacchetto non compresso con PowerShell.

Get-ChildItem -Recurse -Path .\MyConfigZip |
    Measure-Object -Sum Length |
    ForEach-Object -Process {
        $Size = [math]::Round(($_.Sum / 1MB), 2)
        "$Size MB"
    }

Estensione della configurazione del computer con strumenti di terze parti

I pacchetti di artefatti per la configurazione del computer possono essere estesi per includere strumenti di terze parti. L'estensione della configurazione del computer richiede lo sviluppo di due componenti.

  • Una risorsa Desired State Configuration che gestisce tutte le attività correlate alla gestione dello strumento di terze parti
    • Installare
    • Invoke
    • Conversione dell'output
  • Contenuto con il formato corretto per l'utilizzo nativo da parte dello strumento

La risorsa DSC richiede lo sviluppo personalizzato se non esiste già una soluzione della community. Le soluzioni della community possono essere individuate cercando in PowerShell Gallery il tag GuestConfiguration.

Nota

L'estendibilità della configurazione del computer è uno scenario "Bring Your Own License". Prima dell'uso, assicurarsi che i termini e le condizioni degli strumenti di terze parti siano soddisfatti.

Dopo che la risorsa DSC è stata installata nell'ambiente di sviluppo, usare il parametro FilesToInclude per New-GuestConfigurationPackage per includere il contenuto per la piattaforma di terze parti nell'artefatto di contenuto.

Passaggio successivo