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.
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 comandoImport-DSCResource
:
Configuration ExampleConfiguration{ Import-DSCResource -ModuleName nx }
- Per installare il modulo nx, copiare la directory del modulo nx in
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. |