Introduzione a DSC (Desired State Configuration) per Linux

Questo argomento illustra come iniziare a usare PowerShell DSC (Desired State Configuration) per Linux. Per informazioni generali su DSC, vedere Introduzione a Windows PowerShell DSC (Desired State Configuration).

Versioni del sistema operativo Linux supportate

DSC per Linux supporta le versioni seguenti del sistema operativo Linux.

  • CentOS 7 e 8 (x64)
  • Debian GNU/Linux 8, 9 e 10 (x64)
  • Oracle Linux 7 (x64)
  • Red Hat Enterprise Linux Server 7 e 8 (x64)
  • SUSE Linux Enterprise Server 12 e 15 (x64)
  • Ubuntu Server 14.04 LTS, 16.04 LTS, 18.04 LTS e 20.04 LTS (x64)

Installazione di DSC per Linux

Prima di installare DSC per Linux, è necessario installare OMI (Open Management Infrastructure).

Installazione di OMI

DSC (Desired State Configuration) per Linux richiede il server CIM OMI (Open Management Infrastructure), versione 1.0.8.1 o successive. È possibile scaricare OMI dal sito The Open Group: Open Management Infrastructure (OMI).

Per installare OMI, installare il pacchetto appropriato per il sistema Linux (RPM o DEB), la versione OpenSSL (ssl_098 o ssl_100) e l'architettura (x64/x86). I pacchetti RPM sono appropriati per CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server e Oracle Linux. I pacchetti DEB sono appropriati per Debian GNU/Linux e Ubuntu Server. I pacchetti ssl_098 sono appropriati per i computer in cui è installato OpenSSL 0.9.8, mentre i pacchetti ssl_100 sono appropriati per i computer in cui è installato OpenSSL 1.0.

Nota

Per determinare la versione di OpenSSL installata, eseguire il comando openssl version.

Eseguire il comando seguente per installare OMI in un sistema CentOS 7 x64.

# sudo rpm -Uvh omiserver-1.0.8.ssl_100.rpm

Installazione di DSC

DSC per Linux è disponibile per il download dal repository PowerShell-DSC-for-Linux nel repository.

Per installare DSC, installare il pacchetto appropriato per il sistema Linux (con estensione rpm o .deb), la versione di OpenSSL e l'architettura (x64/x86). I pacchetti RPM sono appropriati per CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server e Oracle Linux. I pacchetti DEB sono appropriati per Debian GNU/Linux e Ubuntu Server.

Nota

Supporto per DSC Linux OpenSSL fino alla versione 1.1. Per determinare la versione di OpenSSL installata, eseguire il comando openssl version.

Eseguire il comando seguente per installare DSC in un sistema CentOS 7 x64.

# sudo rpm -Uvh dsc-1.0.0-254.ssl_100.x64.rpm

Uso di DSC per Linux

Le sezioni seguenti illustrano come creare ed eseguire configurazioni DSC nei computer Linux.

Creazione di un documento MOF di configurazione

La parola chiave Configuration di Windows PowerShell viene usata per creare una configurazione per i computer Linux, esattamente come per i computer Windows. I passaggi seguenti descrivono la creazione di un documento di configurazione per un computer Linux con Windows PowerShell.

  1. Importare il modulo nx. Il modulo nx di Windows PowerShell contiene lo schema per le risorse incorporate per DSC per Linux e deve essere installato nel computer locale e importato nella configurazione.

    • Per installare il modulo nx, copiare la directory del modulo nx in $env:USERPROFILE\Documents\WindowsPowerShell\Modules\ o $PSHOME\Modules. Il modulo nx è incluso nel pacchetto di installazione di DSC per Linux. Per importare il modulo nx nella configurazione, usare il comando Import-DSCResource:
    Configuration ExampleConfiguration{
    
     Import-DSCResource -ModuleName nx
    
    }
    
  2. Definire una configurazione e generare il documento di configurazione:

    Configuration ExampleConfiguration
    {
         Import-DSCResource -ModuleName nx
    
         Node  "linuxhost.contoso.com"
         {
             nxFile ExampleFile
             {
                 DestinationPath = "/tmp/example"
                 Contents = "hello world `n"
                 Ensure = "Present"
                 Type = "File"
             }
         }
    }
    
    ExampleConfiguration -OutputPath:"C:\temp"
    

Effettuare il push della configurazione nel computer Linux

È possibile effettuare il push dei documenti di configurazione (file MOF) nel computer Linux usando il cmdlet Start-DscConfiguration. Per usare questo cmdlet, insieme ai cmdlet Get-DscConfiguration o Test-DscConfiguration, in remoto in un computer Linux, è necessario usare una sessione CIMSession. Il cmdlet New-CimSession viene usato per creare una sessione CIMSession nel computer Linux.

Il codice seguente illustra come creare una sessione CIMSession per DSC per Linux.

$Node = "ostc-dsc-01"
$Credential = Get-Credential -UserName "root" -Message "Enter Password:"

#Ignore SSL certificate validation
# $opt = New-CimSessionOption -UseSsl -SkipCACheck -SkipCNCheck -SkipRevocationCheck

#Options for a trusted SSL certificate
$opt = New-CimSessionOption -UseSsl

$sessParams = @{
    Credential = $credential
    ComputerName = $Node
    Port = 5986
    Authentication = 'basic'
    SessionOption = $opt
    OperationTimeoutSec = 90
}

$Sess = New-CimSession @sessParams

Nota

Per la modalità "Push", le credenziali dell'utente devono corrispondere all'utente ROOT nel computer Linux. DSC per Linux supporta solo le connessioni SSL/TLS. Il cmdlet New-CimSession deve essere usato con il parametro -UseSSL impostato su $true. Il certificato SSL usato da OMI (per DSC) è specificato nel file: /etc/opt/omi/conf/omiserver.conf con le proprietà: pemfile e keyfile. Se il certificato non è considerato attendibile dal computer Windows in cui si esegue il cmdlet New-CimSession, è possibile scegliere di ignorare la convalida del certificato con le opzioni di CIMSession: -SkipCACheck -SkipCNCheck -SkipRevocationCheck

Eseguire il comando seguente per effettuare il push della configurazione DSC nel nodo Linux.

Start-DscConfiguration -Path:"C:\temp" -CimSession $Sess -Wait -Verbose

Distribuire la configurazione con un server di pull

Le configurazioni possono essere distribuite in un computer Linux con un server di pull, esattamente come per i computer Windows. Per informazioni sull'uso di un server di pull, vedere Server di pull Windows PowerShell DSC (Desired Configuration Pull). Per altre informazioni e per conoscere le limitazioni relative all'uso di computer Linux con un server di pull, vedere le note sulla versione per DSC per Linux.

Uso di configurazioni in locale

DSC per Linux include gli script per usare la configurazione dal computer Linux locale. Questi script si trovano in /opt/microsoft/dsc/Scripts e includono quanto segue:

  • GetDscConfiguration.py

    Restituisce la configurazione corrente applicata al computer. Simile al cmdlet di Windows PowerShell Get-DscConfiguration.

    # sudo ./GetDscConfiguration.py

  • GetDscLocalConfigurationManager.py

    Restituisce la metaconfigurazione corrente applicata al computer. Simile al cmdlet Get-DSCLocalConfigurationManager.

    # sudo ./GetDscLocalConfigurationManager.py

  • InstallModule.py

    Installa un modulo di risorse DSC personalizzato. Richiede il percorso di un file ZIP contenente la libreria di oggetti condivisi del modulo e i file MOF dello schema.

    # sudo ./InstallModule.py /tmp/cnx_Resource.zip

  • RemoveModule.py

    Rimuove un modulo di risorse DSC personalizzato. Richiede il nome del modulo da rimuovere.

    # sudo ./RemoveModule.py cnx_Resource

  • StartDscLocalConfigurationManager.py

    Applica un file MOF di configurazione al computer. Simile al cmdlet Start-DscConfiguration. Richiede il percorso del file MOF di configurazione da applicare.

    # sudo ./StartDscLocalConfigurationManager.py –configurationmof /tmp/localhost.mof

  • SetDscLocalConfigurationManager.py

    Applica un file MOF di metaconfigurazione al computer. Simile al cmdlet Set-DSCLocalConfigurationManager. Richiede il percorso del file MOF di metaconfigurazione da applicare.

    # sudo ./SetDscLocalConfigurationManager.py –configurationmof /tmp/localhost.meta.mof

File di registro di PowerShell DSC (Desired State Configuration) per Linux

I file di registro seguenti vengono generati per i messaggi di DSC per Linux.

File di registro Directory Descrizione
omiserver.log /var/opt/omi/log Messaggi relativi al funzionamento del server CIM OMI.
dsc.log /var/opt/omi/log Messaggi relativi al funzionamento delle operazioni delle risorse DSC e di Gestione configurazione locale.