Introdução à Configuração de Estado Desejado (DSC) para Linux

Este tópico explica como começar a usar a Configuração de Estado Desejado (DSC) do PowerShell para Linux. Para obter informações gerais sobre o DSC, consulte Introdução à Configuração de Estado Desejado do Windows PowerShell.

Versões do sistema operacional Linux com suporte

Há suporte para as seguintes versões de sistema operacional do Linux no DSC para 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)

Instalando a DSC para Linux

É necessário instalar a OMI (Infraestrutura de Gerenciamento Aberta) antes de instalar a DSC para Linux.

Instalando a 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. A OMI pode ser baixada do The Open Group: OMI (Infraestrutura de Gerenciamento Aberta).

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). Pacotes de RPM são adequados para CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server e Oracle Linux. Pacotes de DEB são adequados para Debian GNU/Linux e 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.

Observação

Para determinar a versão instalada do OpenSSL, execute o comando openssl version.

Execute o seguinte comando para instalar a OMI em um sistema CentOS 7 x64.

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

Instalando a DSC

A DSC para Linux está disponível para download no repositório PowerShell-DSC-for-Linux do repositório.

Para instalar o DSC, instale o pacote apropriado para o sistema Linux (.rpm ou .deb), a versão do OpenSSL e a arquitetura (x64/x86). Pacotes de RPM são adequados para CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server e Oracle Linux. Pacotes de DEB são adequados para Debian GNU/Linux e Ubuntu Server.

Observação

Suporte para DSC Linux OpenSSL até a versão 1.1. Para determinar a versão instalada do OpenSSL, execute o comando openssl version.

Execute o seguinte comando para instalar a DSC em um sistema CentOS 7 x64.

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

Usando a DSC para Linux

As seções a seguir explicam como criar e executar configurações DSC em computadores Linux.

Criando um documento MOF de configuração

A palavra-chave Configuration do Windows PowerShell é usada para criar uma configuração para computadores Linux, assim como para computadores Windows. As etapas a seguir descrevem a criação de um documento de configuração para um computador Linux usando o Windows PowerShell.

  1. Importe o módulo nx. 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.

    • Para instalar o módulo nx, copie o diretório do módulo nx para $env:USERPROFILE\Documents\WindowsPowerShell\Modules\ ou $PSHOME\Modules. O módulo nx está incluído no pacote de instalação da DSC para Linux. Para importar o módulo nx na sua configuração, use o comando Import-DSCResource:
    Configuration ExampleConfiguration{
    
     Import-DSCResource -ModuleName nx
    
    }
    
  2. Definir uma configuração e gerar o documento de configuração:

    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"
    

Envie a configuração por push para o computador Linux

Documentos de configuração (arquivos MOF) podem ser enviados por push para o computador Linux usando o cmdlet Start-DscConfiguration. Para usar esse cmdlet, juntamente com os cmdlets Get-DscConfiguration ou Test-DscConfiguration, remotamente em um computador Linux, você deve utilizar uma CIMSession. O cmdlet New-CimSession é usado para criar uma CIMSession para o computador Linux.

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

Observação

No modo de "Push", a credencial do usuário precisa ser o usuário raiz no computador Linux. 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. O certificado SSL usado pela OMI (para DSC) é especificado no arquivo: /etc/opt/omi/conf/omiserver.conf com as propriedades: pemfile e 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 -SkipCNCheck -SkipRevocationCheck

Execute o seguinte comando para enviar a configuração DSC por push para o nó do Linux.

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

Distribuir a configuração com um servidor de pull

As configurações podem ser distribuídas para um computador Linux com um servidor de pull, assim como para computadores Windows. Para obter diretrizes sobre como usar um servidor de pull, consulte Servidores de Pull de Configuração de Estado Desejado do Windows PowerShell. 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.

Trabalhando com configurações localmente

A DSC para Linux inclui scripts para trabalhar com a configuração no computador Linux local. Esses scripts estão localizados em /opt/microsoft/dsc/Scripts e incluem o seguinte:

  • GetDscConfiguration.py

    Gera a configuração atual aplicada ao computador. Semelhante ao cmdlet Get-DscConfiguration do cmdlet do Windows PowerShell.

    # sudo ./GetDscConfiguration.py

  • GetDscLocalConfigurationManager.py

    Gera a metaconfiguração atual aplicada ao computador. Semelhante ao cmdlet Get-DSCLocalConfigurationManager.

    # sudo ./GetDscLocalConfigurationManager.py

  • InstallModule.py

    Instala um módulo personalizado de recurso de DSC. Requer o caminho para um arquivo. zip que contém a biblioteca de objeto compartilhado do módulo e os arquivos MOF do esquema.

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

  • RemoveModule.py

    Remove um módulo personalizado de recurso de DSC. Requer o nome do módulo que será removido.

    # sudo ./RemoveModule.py cnx_Resource

  • StartDscLocalConfigurationManager.py

    Aplica um arquivo MOF de configuração ao computador. Semelhante ao cmdlet Start-DscConfiguration. Exige o caminho até o MOF de configuração para aplicar.

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

  • SetDscLocalConfigurationManager.py

    Aplica um arquivo MOF de metaconfiguração ao computador. Semelhante ao cmdlet Set-DSCLocalConfigurationManager. Exige o caminho até o MOF de metaconfiguração para aplicar.

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

Arquivos de Log da Configuração de Estado Desejado do PowerShell para Linux

Os seguintes arquivos de log são gerados para mensagens da DSC para Linux.

Arquivo de log Diretório Descrição
omiserver.log /var/opt/omi/log Mensagens relacionadas à operação do servidor CIM da OMI.
dsc.log /var/opt/omi/log Mensagens relacionadas à operação das operações de recurso do Gerenciador de Configurações Local (LCM) e da DSC.