Introducción a la configuración de estado deseado (DSC) para LinuxGet started with Desired State Configuration (DSC) for Linux

En este tema se ofrece una introducción al uso de la configuración de estado deseado (DSC) de PowerShell para Linux.This topic explains how to get started using PowerShell Desired State Configuration (DSC) for Linux. Para obtener información general sobre DSC, consulte Introducción a la configuración de estado deseado de Windows PowerShell.For general information about DSC, see Get Started with Windows PowerShell Desired State Configuration.

Versiones de sistemas operativos Linux compatiblesSupported Linux operation system versions

Se admiten las siguientes versiones de sistemas operativos Linux en DSC para Linux.The following Linux operating system versions are supported by DSC for Linux.

  • CentOS 5, 6 y 7 (x86/x64)CentOS 5, 6, and 7 (x86/x64)
  • Debian GNU/Linux 6, 7 y 8 (x86/x64)Debian GNU/Linux 6, 7 and 8 (x86/x64)
  • Oracle Linux 5, 6 y 7 (x86/x64)Oracle Linux 5, 6 and 7 (x86/x64)
  • Red Hat Enterprise Linux Server 5, 6 y 7 (x86/x64)Red Hat Enterprise Linux Server 5, 6 and 7 (x86/x64)
  • SUSE Linux Enterprise Server 10, 11 y 12 (x86/x64)SUSE Linux Enterprise Server 10, 11 and 12 (x86/x64)
  • Ubuntu Server 12.04 LTS, 14.04 LTS y 16.04 LTS (x86/x64)Ubuntu Server 12.04 LTS, 14.04 LTS, 16.04 LTS (x86/x64)

Instalación de DSC para LinuxInstalling DSC for Linux

Debe instalar Open Management Infrastructure (OMI) antes de instalar DSC para Linux.You must install the Open Management Infrastructure (OMI) before installing DSC for Linux.

Instalación de la OMIInstalling 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.Desired State Configuration for Linux requires the Open Management Infrastructure (OMI) CIM server, version 1.0.8.1 or later. OMI puede descargarse en The Open Group: Open Management Infrastructure (OMI).OMI can be downloaded from 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).To install OMI, install the package that is appropriate for your Linux system (.rpm or .deb) and OpenSSL version (ssl_098 or ssl_100), and architecture (x64/x86). Los paquetes RPM son adecuados para CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server y Oracle Linux.RPM packages are appropriate for CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server, and Oracle Linux. Los paquetes DEB son adecuados para Debian GNU/Linux y Ubuntu Server.DEB packages are appropriate for Debian GNU/Linux and 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.The ssl_098 packages are appropriate for computers with OpenSSL 0.9.8 installed while the ssl_100 packages are appropriate for computers with OpenSSL 1.0 installed.

Nota

Para determinar la versión de OpenSSL instalada, ejecute el comando openssl version.To determine the installed OpenSSL version, run the command openssl version.

Ejecute el siguiente comando para instalar OMI en un sistema con CentOS 7 x64.Run the following command to install OMI on a CentOS 7 x64 system.

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

Instalación de DSCInstalling DSC

DSC para Linux está disponible para su descarga desde el repositorio PowerShell-DSC-for-Linux en el repositorio.DSC for Linux is available for download from the PowerShell-DSC-for-Linux repository in the repository.

Para instalar DSC, 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).To install DSC, install the package that is appropriate for your Linux system (.rpm or .deb) and OpenSSL version (ssl_098 or ssl_100), and architecture (x64/x86). Los paquetes RPM son adecuados para CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server y Oracle Linux.RPM packages are appropriate for CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server, and Oracle Linux. Los paquetes DEB son adecuados para Debian GNU/Linux y Ubuntu Server.DEB packages are appropriate for Debian GNU/Linux and 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.The ssl_098 packages are appropriate for computers with OpenSSL 0.9.8 installed while the ssl_100 packages are appropriate for computers with OpenSSL 1.0 installed.

Nota

Para determinar la versión instalada de OpenSSL, ejecute el comando openssl version.To determine the installed OpenSSL version, run the command openssl version.

Ejecute el siguiente comando para instalar DSC en un sistema con CentOS 7 x64.Run the following command to install DSC on a CentOS 7 x64 system.

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

Uso de DSC para LinuxUsing DSC for Linux

En las siguientes secciones se explica cómo crear y ejecutar configuraciones DSC en equipos Linux.The following sections explain how to create and run DSC configurations on Linux computers.

Creación de un documento MOF de configuraciónCreating a configuration MOF document

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.The Windows PowerShell Configuration keyword is used to create a configuration for Linux computers, just like for Windows computers. En los pasos siguientes se describe la creación de un documento de configuración para un equipo Linux con Windows PowerShell.The following steps describe the creation of a configuration document for a Linux computer using Windows PowerShell.

  1. Importe el módulo nx.Import the nx module. 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.The nx Windows PowerShell module contains the schema for Built-In resources for DSC for Linux, and must be installed to your local computer and imported in the configuration.

    • Para instalar el módulo nx, copie el directorio del módulo nx en $env:USERPROFILE\Documents\WindowsPowerShell\Modules\ o $PSHOME\Modules.To install the nx module, copy the nx module directory to either $env:USERPROFILE\Documents\WindowsPowerShell\Modules\ or $PSHOME\Modules. El módulo nx se incluye en la DSC para paquetes de instalación de Linux.The nx module is included in the DSC for Linux installation package. Para importar el módulo nx en la configuración, utilice el comando Import-DSCResource:To import the nx module in your configuration, use the Import-DSCResource command:
    Configuration ExampleConfiguration{
    
     Import-DSCResource -Module nx
    
    }
    
  2. Defina una configuración y genere el documento de configuración:Define a configuration and generate the configuration document:

    Configuration ExampleConfiguration
    {
         Import-DscResource -Module 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 LinuxPush the configuration to the Linux computer

Los documentos de configuración (archivos MOF) se pueden insertar en el equipo Linux mediante el cmdlet Start-DscConfiguration.Configuration documents (MOF files) can be pushed to the Linux computer using the Start-DscConfiguration cmdlet. 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.In order to use this cmdlet, along with the Get-DscConfiguration, or Test-DscConfiguration cmdlets, remotely to a Linux computer, you must use a CIMSession. El cmdlet New-CimSession se usa para crear un elemento CIMSession para el equipo Linux.The New-CimSession cmdlet is used to create a CIMSession to the Linux computer.

En el código siguiente se muestra cómo crear un elemento CIMSession de DSC para Linux.The following code shows how to create a CIMSession for DSC for Linux.

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

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

#Options for a trusted SSL certificate
$opt = New-CimSessionOption -UseSsl $true
$Sess=New-CimSession -Credential $credential -ComputerName $Node -Port 5986 -Authentication basic -SessionOption $opt -OperationTimeoutSec 90

Nota

En el modo "Push", la credencial de usuario debe ser un usuario raíz del equipo Linux.For "Push" mode, the user credential must be the root user on the Linux computer. Solo se admiten conexiones SSL/TLS de DSC para Linux, el cmdlet New-CimSession debe utilizarse con el parámetro -UseSSL establecido en $true.Only SSL/TLS connections are supported for DSC for Linux, the New-CimSession must be used with the –UseSSL parameter set to $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.The SSL certificate used by OMI (for DSC) is specified in the file: /etc/opt/omi/conf/omiserver.conf with the properties: pemfile and 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 $true -SkipCNCheck $true -SkipRevocationCheck $trueIf this certificate is not trusted by the Windows computer that you are running the New-CimSession cmdlet on, you can choose to ignore certificate validation with the CIMSession Options: -SkipCACheck $true -SkipCNCheck $true -SkipRevocationCheck $true

Ejecute el comando siguiente para insertar la configuración DSC en el nodo de Linux.Run the following command to push the DSC configuration to the Linux node.

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

Distribuir la configuración con un servidor de extracciónDistribute the configuration with a pull server

Las configuraciones se pueden distribuir a un equipo Linux con un servidor de extracción, igual que con equipos Windows.Configurations can be distributed to a Linux computer with a pull server, just like for Windows computers. 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.For guidance on using a pull server, see Windows PowerShell Desired State Configuration Pull Servers. 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.For additional information and limitations related to using Linux computers with a pull server, see the Release Notes for Desired State Configuration for Linux.

Trabajar con configuraciones de forma localWorking with configurations locally

DSC para Linux incluye scripts para trabajar con la configuración del equipo Linux local.DSC for Linux includes scripts to work with configuration from the local Linux computer. Estos scripts se encuentran en /opt/microsoft/dsc/Scripts e incluyen lo siguiente:These scripts are locate in /opt/microsoft/dsc/Scripts and include the following:

  • GetDscConfiguration.pyGetDscConfiguration.py

    Devuelve la configuración actual que se aplica al equipo.Returns the current configuration applied to the computer. Es similar al cmdlet de Windows PowerShell Get-DscConfiguration.Similar to the Windows PowerShell cmdlet Get-DscConfiguration cmdlet.

    # sudo ./GetDscConfiguration.py

  • GetDscLocalConfigurationManager.pyGetDscLocalConfigurationManager.py

    Devuelve la metaconfiguración actual que se aplica al equipo.Returns the current meta-configuration applied to the computer. Es similar al cmdlet Get-DSCLocalConfigurationManager.Similar to the cmdlet Get-DSCLocalConfigurationManager cmdlet.

    # sudo ./GetDscLocalConfigurationManager.py

  • InstallModule.pyInstallModule.py

    Instala un módulo de recursos de DSC personalizado.Installs a custom DSC resource module. 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.Requires the path to a .zip file containing the module shared object library and schema MOF files.

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

  • RemoveModule.pyRemoveModule.py

    Quita un módulo de recursos de DSC personalizado.Removes a custom DSC resource module. Requiere el nombre del módulo que se va a quitar.Requires the name of the module to remove.

    # sudo ./RemoveModule.py cnx_Resource

  • StartDscLocalConfigurationManager.pyStartDscLocalConfigurationManager.py

    Aplica un archivo MOF de configuración en el equipo.Applies a configuration MOF file to the computer. Es similar al cmdlet Start-DscConfiguration.Similar to the Start-DscConfiguration cmdlet. Requiere la ruta de acceso al MOF de configuración que se va a aplicar.Requires the path to the configuration MOF to apply.

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

  • SetDscLocalConfigurationManager.pySetDscLocalConfigurationManager.py

    Aplica a un archivo MOF de metaconfiguración en el equipo.Applies a Meta Configuration MOF file to the computer. Es similar al cmdlet Set-DSCLocalConfigurationManager.Similar to the Set-DSCLocalConfigurationManager cmdlet. Requiere la ruta de acceso al MOF de metaconfiguración que se va a aplicar.Requires the path to the Meta Configuration MOF to apply.

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

Archivos de registro de la configuración de estado deseado para Linux de PowerShellPowerShell Desired State Configuration for Linux Log Files

Los siguientes archivos de registro son mensajes generados para DSC para Linux.The following log files are generated for DSC for Linux messages.

Archivo de registroLog file DirectorioDirectory DescripciónDescription
omiserver.logomiserver.log /var/opt/omi/log Mensajes relacionados con la operación del servidor CIM OMI.Messages relating to the operation of the OMI CIM server.
dsc.logdsc.log /var/opt/omi/log Mensajes relacionados con el funcionamiento del administrador de configuración local (LCM) y las operaciones de recursos de DSC.Messages relating to the operation of the Local Configuration Manager (LCM) and DSC resource operations.