Prendre en main la fonctionnalité DSC (Desired State Configuration) pour Linux

Cette rubrique explique comment prendre en main la fonctionnalité DSC (Desired State Configuration) PowerShell pour Linux. Pour obtenir des informations générales sur DSC, consultez Prendre en main la fonctionnalité DSC (Desired State Configuration) Windows PowerShell.

Versions du système d’exploitation Linux prises en charge

Les versions suivantes du système d’exploitation Linux sont prises en charge par DSC pour Linux.

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

Installation de DSC pour Linux

Vous devez installer Open Management Infrastructure (OMI) avant d’installer DSC pour Linux.

Installation d’OMI

DSC pour Linux nécessite le serveur CIM d’Open Management Infrastructure (OMI), version 1.0.8.1 ou ultérieure. Vous pouvez télécharger OMI à partir de The Open Group : Open Management Infrastructure (OMI).

Pour installer OMI, installez le package approprié pour le système Linux (.rpm ou .deb), la version d’OpenSSL (ssl_098 ou ssl_100) et l’architecture (x64/x86) que vous utilisez. Les packages RPM sont conçus pour les systèmes CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server et Oracle Linux. Les packages DEB sont conçus pour les systèmes Debian GNU/Linux et Ubuntu Server. Les packages ssl_098 et les packages ssl_100 sont conçus pour les ordinateurs avec OpenSSL 0.9.8 et les ordinateurs avec OpenSSL 1.0, respectivement.

Notes

Pour connaître la version d’OpenSSL installée, exécutez la commande openssl version.

Exécutez la commande suivante pour installer OMI sur un système CentOS 7 x64.

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

Installation de DSC

DSC pour Linux est disponible en téléchargement à partir du référentiel PowerShell-DSC-for-Linux dans le référentiel.

Pour installer DSC, installez le package approprié pour votre système Linux (.rpm ou .deb), la version OpenSSL et l’architecture (x64/x86). Les packages RPM sont conçus pour les systèmes CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server et Oracle Linux. Les packages DEB sont conçus pour les systèmes Debian GNU/Linux et Ubuntu Server.

Notes

Prise en charge de DSC Linux OpenSSL jusqu’à la version 1.1. Pour connaître la version d’OpenSSL installée, exécutez la commande openssl version.

Exécutez la commande suivante pour installer DSC sur un système CentOS 7 x64.

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

Utilisation de DSC pour Linux

Les sections suivantes expliquent comment créer et exécuter des configurations DSC sur les ordinateurs Linux.

Création d’un document MOF de configuration

Le mot clé Windows PowerShell « Configuration » permet de créer une configuration pour les ordinateurs Linux, tout comme pour les ordinateurs Windows. Suivez les étapes décrites ci-dessous pour créer un document de configuration pour un ordinateur Linux à l’aide de Windows PowerShell.

  1. Importez le module nx. Le module nx de Windows PowerShell contient le schéma des ressources intégrées pour DSC pour Linux. Il doit être installé sur votre ordinateur local et importé dans la configuration.

    • Pour installer le module nx, copiez le répertoire du module nx vers $env:USERPROFILE\Documents\WindowsPowerShell\Modules\ ou $PSHOME\Modules. Le module nx est inclus dans le package d’installation de DSC pour Linux. Pour importer le module nx dans votre configuration, utilisez la commande Import-DSCResource :
    Configuration ExampleConfiguration{
    
     Import-DSCResource -ModuleName nx
    
    }
    
  2. Définissez une configuration et créez le document de configuration :

    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"
    

Transmission de la configuration en mode Push à l’ordinateur Linux.

Vous pouvez envoyer des documents de configuration (fichiers MOF) à l’ordinateur Linux à l’aide de l’applet de commande Start-DscConfiguration. Pour utiliser cette applet de commande avec les applets de commande Get-DscConfiguration ou Test-DscConfiguration à distance sur un ordinateur Linux, vous devez utiliser une session CIMSession. L’applet de commande New-CimSession permet de créer une session CIMSession sur l’ordinateur Linux.

Le code suivant crée une session CIMSession pour DSC pour 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

Notes

En mode « Push », les informations d’identification de l’utilisateur doivent correspondre à l’utilisateur racine sur l’ordinateur Linux. Seules les connexions SSL/TLS sont prises en charge pour DSC pour Linux. L’applet de commande New-CimSession doit être utilisée avec le paramètre –UseSSL défini sur $true. Le certificat SSL utilisé par OMI (pour DSC) est spécifié dans le fichier /etc/opt/omi/conf/omiserver.conf avec les propriétés pemfile et keyfile. Si ce certificat n’est pas approuvé par l’ordinateur Windows sur lequel vous exécutez l’applet de commande New-CimSession, vous pouvez choisir d’ignorer la validation des certificats en spécifiant les options CIMSession suivantes : -SkipCACheck -SkipCNCheck -SkipRevocationCheck

Exécutez la commande suivante pour transmettre en mode Push la configuration DSC vers le nœud Linux.

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

Distribution de la configuration à l’aide d’un serveur collecteur

Vous pouvez utiliser un serveur collecteur pour distribuer des configurations sur un ordinateur Linux, de la même manière que sur un ordinateur Windows. Pour obtenir des conseils sur l’utilisation d’un serveur collecteur, consultez Serveurs collecteurs dans DSC Windows PowerShell. Pour obtenir plus d’informations et connaître les limitations relatives à l’utilisation d’ordinateurs Linux avec un serveur collecteur, consultez les notes de publication concernant DSC pour Linux.

Utilisation de configurations locales

DSC pour Linux fournit des scripts qui peuvent être utilisés avec une configuration de l’ordinateur Linux local. Ces scripts se trouvent dans le répertoire /opt/microsoft/dsc/Scripts et contiennent les éléments suivants :

  • GetDscConfiguration.py

    Retourne la configuration actuellement appliquée à l’ordinateur. Semblable à l’applet de commande Get-DscConfiguration Windows PowerShell.

    # sudo ./GetDscConfiguration.py

  • GetDscLocalConfigurationManager.py

    Retourne la métaconfiguration actuellement appliquée à l’ordinateur. Similaire à l’applet de commande Get-DSCLocalConfigurationManager.

    # sudo ./GetDscLocalConfigurationManager.py

  • InstallModule.py

    Installe un module de ressources DSC personnalisé. Doit spécifier le chemin d’un fichier .zip contenant la bibliothèque d’objets partagés et les fichiers MOF de schéma du module.

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

  • RemoveModule.py

    Supprime un module de ressources DSC personnalisé. Doit spécifier le nom du module à supprimer.

    # sudo ./RemoveModule.py cnx_Resource

  • StartDscLocalConfigurationManager.py

    Applique un fichier MOF de configuration sur l’ordinateur. Similaire à l’applet de commande Start-DscConfiguration. Doit spécifier le chemin du fichier MOF de configuration à appliquer.

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

  • SetDscLocalConfigurationManager.py

    Applique un fichier MOF de métaconfiguration sur l’ordinateur. Similaire à l’applet de commande Set-DSCLocalConfigurationManager. Doit spécifier le chemin du fichier MOF de métaconfiguration à appliquer.

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

Fichiers journaux de DSC PowerShell pour Linux

Les messages concernant DSC pour Linux sont écrits dans les fichiers journaux suivants.

Fichier journal Répertoire Description
omiserver.log /var/opt/omi/log Messages relatifs au fonctionnement du serveur CIM d’OMI.
dsc.log /var/opt/omi/log Messages relatifs au fonctionnement de LCM (Local Configuration Manager) et à l’utilisation des ressources DSC.