Introducción a la configuración de estado deseado (DSC) para Linux

En este tema se ofrece una introducción al uso de la configuración de estado deseado (DSC) de PowerShell para Linux. Para obtener información general sobre DSC, consulte Introducción a la configuración de estado deseado de Windows PowerShell.

Versiones de sistemas operativos Linux compatibles

Se admiten las siguientes versiones de sistemas operativos Linux en DSC para Linux.

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

Instalación de DSC para Linux

Debe instalar Open Management Infrastructure (OMI) antes de instalar DSC para Linux.

Instalación de la OMI

La configuración de estado deseado para Linux requiere el servidor CIM de infraestructura de administración abierta (OMI), versión 1.0.8.1 o posterior. OMI puede descargarse en The Open Group: Open Management Infrastructure (OMI).

Para instalar OMI, instale el paquete que sea adecuado para su sistema Linux (.rpm o .deb) y versión de OpenSSL (ssl_098 o ssl_100), y la arquitectura (x64/x86). Los paquetes RPM son adecuados para CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server y Oracle Linux. Los paquetes DEB son adecuados para Debian GNU/Linux y Ubuntu Server. Los paquetes ssl_098 son adecuados para equipos con OpenSSL 0.9.8 instalado, mientras que los paquetes ssl_100 son adecuados para equipos con OpenSSL 1.0 instalado.

Nota

Para determinar la versión de OpenSSL instalada, ejecute el comando openssl version.

Ejecute el siguiente comando para instalar OMI en un sistema con CentOS 7 x64.

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

Instalación de DSC

DSC para Linux está disponible para su descarga desde el repositorio PowerShell-DSC-for-Linux en el repositorio.

Para instalar DSC, instale el paquete adecuado para el sistema Linux (.rpm o .deb), la versión de OpenSSL y la arquitectura (x64/x86). Los paquetes RPM son adecuados para CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server y Oracle Linux. Los paquetes DEB son adecuados para Debian GNU/Linux y Ubuntu Server.

Nota

Compatibilidad con DSC Linux OpenSSL hasta la versión 1.1. Para determinar la versión de OpenSSL instalada, ejecute el comando openssl version.

Ejecute el siguiente comando para instalar DSC en un sistema con CentOS 7 x64.

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

Uso de DSC para Linux

En las siguientes secciones se explica cómo crear y ejecutar configuraciones DSC en equipos Linux.

Creación de un documento MOF de configuración

Se utiliza la palabra clave de Windows PowerShell Configuration a fin de crear una configuración para los equipos Linux, de la misma forma que para los equipos Windows. En los pasos siguientes se describe la creación de un documento de configuración para un equipo Linux con Windows PowerShell.

  1. Importe el módulo nx. El módulo de Windows PowerShell nx contiene el esquema para los recursos integrados de DSC para Linux y debe instalarse en el equipo local e importarse en la configuración.

    • Para instalar el módulo nx, copie el directorio del módulo nx en $env:USERPROFILE\Documents\WindowsPowerShell\Modules\ o $PSHOME\Modules. El módulo nx se incluye en la DSC para paquetes de instalación de Linux. Para importar el módulo nx en la configuración, utilice el comando Import-DSCResource:
    Configuration ExampleConfiguration{
    
     Import-DSCResource -ModuleName nx
    
    }
    
  2. Defina una configuración y genere el documento de configuración:

    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"
    

Insertar la configuración en el equipo Linux

Los documentos de configuración (archivos MOF) se pueden insertar en el equipo Linux mediante el cmdlet Start-DscConfiguration. Para usar este cmdlet, junto con los cmdlets Get-DscConfiguration o Test-DscConfiguration, de forma remota en un equipo Linux, debe usar un elemento CIMSession. El cmdlet New-CimSession se usa para crear un elemento CIMSession para el equipo Linux.

En el código siguiente se muestra cómo crear un elemento CIMSession de DSC para 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

En el modo "Push", la credencial de usuario debe ser un usuario raíz del equipo Linux. Solo se admiten conexiones SSL/TLS de DSC para Linux, el cmdlet New-CimSession debe utilizarse con el parámetro -UseSSL establecido en $true. El certificado SSL que utiliza OMI (para DSC) se especifica en el archivo /etc/opt/omi/conf/omiserver.conf con las propiedades pemfile y keyfile. Si este certificado no es de confianza para el equipo de Windows en el que se está ejecutando el cmdlet New-CimSession, puede elegir ignorar la validación de certificados con las opciones de CIMSession -SkipCACheck -SkipCNCheck -SkipRevocationCheck

Ejecute el comando siguiente para insertar la configuración DSC en el nodo de Linux.

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

Distribuir la configuración con un servidor de extracción

Las configuraciones se pueden distribuir a un equipo Linux con un servidor de extracción, igual que con equipos Windows. Para obtener instrucciones sobre el uso de un servidor de incorporación de cambios, consulte Servidores de incorporación de cambios de la configuración de estado deseado de Windows PowerShell. Para obtener información adicional y conocer las limitaciones relativas al uso de equipos Linux con un servidor de extracción, consulte las notas de la versión de la configuración de estado deseado para Linux.

Trabajar con configuraciones de forma local

DSC para Linux incluye scripts para trabajar con la configuración del equipo Linux local. Estos scripts se encuentran en /opt/microsoft/dsc/Scripts e incluyen lo siguiente:

  • GetDscConfiguration.py

    Devuelve la configuración actual que se aplica al equipo. Es similar al cmdlet de Windows PowerShell Get-DscConfiguration.

    # sudo ./GetDscConfiguration.py

  • GetDscLocalConfigurationManager.py

    Devuelve la metaconfiguración actual que se aplica al equipo. Es similar al cmdlet Get-DSCLocalConfigurationManager.

    # sudo ./GetDscLocalConfigurationManager.py

  • InstallModule.py

    Instala un módulo de recursos de DSC personalizado. Requiere la ruta de acceso a un archivo .zip que contenga la biblioteca de objetos compartidos del módulo y los archivos MOF del esquema.

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

  • RemoveModule.py

    Quita un módulo de recursos de DSC personalizado. Requiere el nombre del módulo que se va a quitar.

    # sudo ./RemoveModule.py cnx_Resource

  • StartDscLocalConfigurationManager.py

    Aplica un archivo MOF de configuración en el equipo. Es similar al cmdlet Start-DscConfiguration. Requiere la ruta de acceso al MOF de configuración que se va a aplicar.

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

  • SetDscLocalConfigurationManager.py

    Aplica a un archivo MOF de metaconfiguración en el equipo. Es similar al cmdlet Set-DSCLocalConfigurationManager. Requiere la ruta de acceso al MOF de metaconfiguración que se va a aplicar.

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

Archivos de registro de la configuración de estado deseado para Linux de PowerShell

Los siguientes archivos de registro son mensajes generados para DSC para Linux.

Archivo de registro Directorio Descripción
omiserver.log /var/opt/omi/log Mensajes relacionados con la operación del servidor CIM OMI.
dsc.log /var/opt/omi/log Mensajes relacionados con el funcionamiento del administrador de configuración local (LCM) y las operaciones de recursos de DSC.