Introdução à Configuração de Estado Desejado (DSC) para LinuxGet started with Desired State Configuration (DSC) for Linux

Este tópico explica como começar a usar a Configuração de Estado Desejado (DSC) do PowerShell para Linux.This topic explains how to get started using PowerShell Desired State Configuration (DSC) for Linux. Para obter informações gerais sobre o DSC, consulte Introdução à Configuração de Estado Desejado do Windows PowerShell.For general information about DSC, see Get Started with Windows PowerShell Desired State Configuration.

Versões do sistema operacional Linux com suporteSupported Linux operation system versions

Há suporte para as seguintes versões de sistema operacional do Linux para DSC para Linux.The following Linux operating system versions are supported for DSC for Linux.

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

A tabela a seguir descreve as dependências de pacote necessárias para a DSC para Linux.The following table describes the required package dependencies for DSC for Linux.

Pacote necessárioRequired package DescriçãoDescription Versão mínimaMinimum version
glibcglibc Biblioteca do GNUGNU Library 2…4 – 31.302…4 – 31.30
pythonpython PythonPython 2.4 – 3.42.4 – 3.4
omiserveromiserver Infraestrutura de gerenciamento abertaOpen Management Infrastructure 1.0.8.11.0.8.1
opensslopenssl Bibliotecas do OpenSSLOpenSSL Libraries 0.9.8 ou 1.00.9.8 or 1.0
ctypesctypes Biblioteca do Python CTypesPython CTypes library Deve coincidir com a versão do PythonMust match Python version
libcurllibcurl biblioteca de cliente http do cURLcURL http client library 7.15.17.15.1

Instalando a DSC para LinuxInstalling DSC for Linux

É necessário instalar a Infraestrutura de Gerenciamento Aberta (OMI) antes de instalar a DSC para Linux.You must install the Open Management Infrastructure (OMI) before installing DSC for Linux.

Instalando a OMIInstalling OMI

A Desired State Configuration para Linux requer o servidor CIM da OMI (Infraestrutura de Gerenciamento Aberta), versão 1.0.8.1 ou posterior.Desired State Configuration for Linux requires the Open Management Infrastructure (OMI) CIM server, version 1.0.8.1 or later. A OMI pode ser baixada do The Open Group: Infraestrutura de Gerenciamento Aberta (OMI).OMI can be downloaded from The Open Group: Open Management Infrastructure (OMI).

Para instalar a OMI, instale o pacote adequado para seu sistema Linux (.rpm ou .deb), a versão do OpenSSL (ssl_098 ou ssl_100) e a arquitetura (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). Pacotes de RPM são adequados para CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server e Oracle Linux.RPM packages are appropriate for CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server, and Oracle Linux. Pacotes de DEB são adequados para Debian GNU/Linux e Ubuntu Server.DEB packages are appropriate for Debian GNU/Linux and Ubuntu Server. Os pacotes ssl_098 são adequados para computadores com OpenSSL 0.9.8 instalado, enquanto os pacotes ssl_100 são adequados para computadores com 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.

Observação: para determinar a versão instalada do OpenSSL, execute o comando openssl version.Note: To determine the installed OpenSSL version, run the command openssl version.

Execute o seguinte comando para instalar a OMI em um sistema 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

Instalando a DSCInstalling DSC

DSC para Linux está disponível para download aqui.DSC for Linux is available for download here.

Para instalar a DSC, instale o pacote adequado para seu sistema Linux (.rpm ou .deb), a versão do OpenSSL (ssl_098 ou ssl_100) e a arquitetura (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). Pacotes de RPM são adequados para CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server e Oracle Linux.RPM packages are appropriate for CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server, and Oracle Linux. Pacotes de DEB são adequados para Debian GNU/Linux e Ubuntu Server.DEB packages are appropriate for Debian GNU/Linux and Ubuntu Server. Os pacotes ssl_098 são adequados para computadores com OpenSSL 0.9.8 instalado, enquanto os pacotes ssl_100 são adequados para computadores com 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.

Observação: para determinar a versão instalada do OpenSSL, execute a versão do comando openssl.Note: To determine the installed OpenSSL version, run the command openssl version.

Execute o seguinte comando para instalar a DSC em um sistema 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

Usando a DSC para LinuxUsing DSC for Linux

As seções a seguir explicam como criar e executar configurações DSC em computadores Linux.The following sections explain how to create and run DSC configurations on Linux computers.

Criando um documento MOF de configuraçãoCreating a configuration MOF document

A palavra-chave Configuration do Windows PowerShell é usada para criar uma configuração para computadores Linux, assim como para computadores Windows.The Windows PowerShell Configuration keyword is used to create a configuration for Linux computers, just like for Windows computers. As etapas a seguir descrevem a criação de um documento de configuração para um computador Linux usando o Windows PowerShell.The following steps describe the creation of a configuration document for a Linux computer using Windows PowerShell.

  1. Importe o módulo nx.Import the nx module. O módulo nx do Windows PowerShell contém o esquema para recursos internos para DSC para Linux e deve ser instalado no seu computador local e importado na configuração.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 o módulo nx, copie o diretório do módulo nx para $env:USERPROFILE\Documents\WindowsPowerShell\Modules\ ou $PSHOME\Modules.-To install the nx module, copy the nx module directory to either $env:USERPROFILE\Documents\WindowsPowerShell\Modules\ or $PSHOME\Modules. O módulo nx está incluído no pacote de instalação da DSC para Linux (MSI).The nx module is included in the DSC for Linux installation package (MSI). Para importar o módulo nx na sua configuração, use o comando Import-DSCResource:To import the nx module in your configuration, use the Import-DSCResource command:

Configuration ExampleConfiguration{

    Import-DSCResource -Module nx

}
  1. Definir uma configuração e gerar o documento de configuração: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" 

Envie a configuração por push para o computador LinuxPush the configuration to the Linux computer

Documentos de configuração (arquivos MOF) podem ser enviados por push para o computador Linux usando o cmdlet Start-DscConfiguration.Configuration documents (MOF files) can be pushed to the Linux computer using the Start-DscConfiguration cmdlet. Para usar esse cmdlet, juntamente com os cmdlets Get-DscConfiguration ou Test-DscConfiguration, remotamente em um computador Linux, você deve utilizar uma 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. O cmdlet New-CimSession é usado para criar uma CIMSession para o computador Linux.The New-CimSession cmdlet is used to create a CIMSession to the Linux computer.

O código a seguir mostra como criar uma CIMSession para 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 

Observação:Note:

  • No modo de “push”, a credencial do usuário precisa ser o usuário raiz no computador Linux.For “Push” mode, the user credential must be the root user on the Linux computer.
  • Há suporte apenas para conexões SSL/TLS para DSC para Linux; a New-CimSession precisa ser usada com o parâmetro –UseSSL definido como $true.Only SSL/TLS connections are supported for DSC for Linux, the New-CimSession must be used with the –UseSSL parameter set to $true.
  • O certificado SSL usado pela OMI (para DSC) é especificado no arquivo: /opt/omi/etc/omiserver.conf com as propriedades: pemfile e keyfile.The SSL certificate used by OMI (for DSC) is specified in the file: /opt/omi/etc/omiserver.conf with the properties: pemfile and keyfile. Se o computador Windows em que você está executando o cmdlet New-CimSession não confiar nesse certificado, será possível optar por ignorar a validação do certificado com as Opções 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

Execute o seguinte comando para enviar a configuração DSC por push para o nó do Linux.Run the following command to push the DSC configuration to the Linux node.

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

Distribuir a configuração com um servidor de pullDistribute the configuration with a pull server

As configurações podem ser distribuídas para um computador Linux com um servidor de pull, assim como para computadores Windows.Configurations can be distributed to a Linux computer with a pull server, just like for Windows computers. Para obter orientações sobre como usar um servidor de pull, consulte Servidores de Pull de Configuração de Estado Desejado do Windows PowerShell.For guidance on using a pull server, see Windows PowerShell Desired State Configuration Pull Servers. Para obter informações adicionais e se informar sobre as limitações relacionadas ao uso de computadores Linux com um servidor pull, consulte as Notas de versão para a configuração de estado desejado 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.

Trabalhando com configurações localmenteWorking with configurations locally

A DSC para Linux inclui scripts para trabalhar com a configuração no computador Linux local.DSC for Linux includes scripts to work with configuration from the local Linux computer. Esses scripts estão localizados em /opt/microsoft/dsc/Scripts e incluem o seguinte:These scripts are locate in /opt/microsoft/dsc/Scripts and include the following:

  • GetDscConfiguration.pyGetDscConfiguration.py

    Gera a configuração atual aplicada ao computador.Returns the current configuration applied to the computer. Semelhante ao cmdlet Get-DscConfiguration do Windows PowerShell.Similar to the Windows PowerShell cmdlet Get-DscConfiguration cmdlet.

# sudo ./GetDscConfiguration.py

# sudo ./GetDscLocalConfigurationManager.py

  • InstallModule.pyInstallModule.py

    Instala um módulo personalizado de recurso de DSC.Installs a custom DSC resource module. Requer o caminho para um arquivo. zip que contém a biblioteca de objeto compartilhado do módulo e os arquivos MOF do 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

    Remove um módulo personalizado de recurso de DSC.Removes a custom DSC resource module. Requer o nome do módulo que será removido.Requires the name of the module to remove.

# sudo ./RemoveModule.py cnx_Resource

  • StartDscLocalConfigurationManager.pyStartDscLocalConfigurationManager.py

    Aplica um arquivo MOF de configuração ao computador.Applies a configuration MOF file to the computer. Semelhante ao cmdlet Start-DscConfiguration.Similar to the Start-DscConfiguration cmdlet. Exige o caminho até o MOF de configuração para aplicar.Requires the path to the configuration MOF to apply.

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

  • SetDscLocalConfigurationManager.pySetDscLocalConfigurationManager.py

    Aplica um arquivo MOF de metaconfiguração ao computador.Applies a Meta Configuration MOF file to the computer. Semelhante ao cmdlet Set-DSCLocalConfigurationManager.Similar to the Set-DSCLocalConfigurationManager cmdlet. Exige o caminho até o MOF de metaconfiguração para aplicar.Requires the path to the Meta Configuration MOF to apply.

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

Arquivos de Log da Configuração de Estado Desejado do PowerShell para LinuxPowerShell Desired State Configuration for Linux Log Files

Os seguintes arquivos de log são gerados para mensagens da DSC para Linux.The following log files are generated for DSC for Linux messages.

Arquivo de logLog file DirectoryDirectory DescriçãoDescription
omiserver.logomiserver.log /var/opt/omi/log/var/opt/omi/log Mensagens relacionadas à operação do servidor CIM da OMI.Messages relating to the operation of the OMI CIM server.
dsc.logdsc.log /var/opt/omi/log/var/opt/omi/log Mensagens relacionadas à operação das operações de recurso do Gerenciador de Configurações Local (LCM) e da DSC.Messages relating to the operation of the Local Configuration Manager (LCM) and DSC resource operations.