Escrever, compilar e aplicar uma configuração

Aplica-se a: Windows PowerShell 4.0, Windows PowerShell 5.0

Este exercício oferece instruções de como criar e aplicar uma configuração para a Configuração Estado Desejado (DSC) do início ao fim. No exemplo a seguir, você aprenderá como escrever e aplicar uma configuração muito simples. A configuração garantirá que um arquivo "HelloWorld.txt" existe em seu computador local. Se você excluir o arquivo, a DSC o criará novamente em sua próxima atualização.

Para ter uma visão geral sobre o que é a DSC e como ela funciona, confira Visão geral da Desired State Configuration para desenvolvedores.

Requisitos

Para executar este exemplo, você precisará de um computador com o PowerShell 4.0 ou posterior.

Gravar a configuração

Uma Configuração DSC é uma função especial do PowerShell que define como você deseja configurar um ou mais computadores de destino (nós).

No ISE do PowerShell ou em outro editor do PowerShell, digite o seguinte:

Configuration HelloWorld {

    # Import the module that contains the File resource.
    Import-DscResource -ModuleName PsDesiredStateConfiguration

    # The Node statement specifies which targets to compile MOF files for, when
    # this configuration is executed.
    Node 'localhost' {

        # The File resource can ensure the state of files, or copy them from a
        # source to a destination with persistent updates.
        File HelloWorld {
            DestinationPath = "C:\Temp\HelloWorld.txt"
            Ensure = "Present"
            Contents   = "Hello World from DSC!"
        }
    }
}

Importante

Em cenários mais avançados, nos quais vários módulos precisam ser importados, para que você possa trabalhar com muitos Recursos de DSC na mesma configuração, coloque cada módulo em uma linha separada usando Import-DscResource. Assim é mais fácil manter no controle do código-fonte e é necessário ao trabalhar com a DSC na Configuração de Estado do Azure.

 Configuration HelloWorld {

  # Import the module that contains the File resource.
  Import-DscResource -ModuleName PsDesiredStateConfiguration
  Import-DscResource -ModuleName xWebAdministration

Salve o arquivo como "HelloWorld.ps1".

Definir uma configuração é semelhante a definir uma função. O bloco especifica o nó de destino a ser configurado, neste caso localhost.

A configuração chama um recurso, o recurso File. Os recursos fazem o trabalho de garantir que o nó de destino está no estado definido pela configuração.

Compilar a configuração

Para que uma configuração DSC seja aplicada a um nó, ela deve primeiro ser compilada em um arquivo MOF. A execução da configuração, como no caso de uma função, compilará um arquivo .mof para cada Nó definido pelo bloco Node. Para executar a configuração, você precisa executar dot source no script HelloWorld.ps1 para o escopo atual. Para obter mais informações, confira about_Scripts.

Execute dot source no script HelloWorld.ps1 digitando o caminho em que você o armazenou, após o . (ponto, espaço). Em seguida, você poderá executar a configuração chamando-a como uma função. Você também pode invocar a função de configuração na parte inferior do script para que não seja necessário executar dot source.

. C:\Scripts\HelloWorld.ps1
HelloWorld

Isso gerará os seguintes resultados:

Directory: C:\Scripts\HelloWorld


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        3/13/2017   5:20 PM           2746 localhost.mof

Aplicar a configuração

Agora que você tem o MOF compilado, é possível aplicar a configuração ao nó de destino (neste caso, o computador local) chamando o cmdlet Start-DscConfiguration.

O cmdlet Start-DscConfiguration instrui o LCM (Gerenciador de Configurações Local), que é o mecanismo da DSC, a aplicar a configuração. O LCM realiza o trabalho de chamar os recursos de DSC para aplicar a configuração.

Use o código a seguir para executar o cmdlet Start-DSCConfiguration. Especifique o caminho do diretório no qual o localhost.mof está armazenado para o parâmetro Path. O cmdlet Start-DSCConfiguration examina o diretório especificado para qualquer arquivo <computername>.mof. O cmdlet Start-DSCConfiguration tenta aplicar cada arquivo .mof encontrado ao computername especificado pelo nome do ("localhost", "server01", "dc-02" etc.).

Observação

Se o parâmetro -Wait não for especificado, Start-DSCConfiguration criará um trabalho em segundo plano para executar a operação. Especificar o parâmetro -Verbose permite que você inspecione a saída Detalhada da operação. -Wait e -Verbose são parâmetros opcionais.

Start-DscConfiguration -Path C:\Scripts\HelloWorld -Verbose -Wait

Testar a configuração

Quando o cmdlet Start-DSCConfiguration for concluído, o arquivo HelloWorld.txt deverá estar no local especificado. Você pode verificar o conteúdo com o cmdlet Get-Content.

Você também pode testar o status atual usando Test-DSCConfiguration.

A saída deverá ser True se o Nó estiver em conformidade no momento com a configuração aplicada.

Test-DSCConfiguration
True
Get-Content -Path C:\Temp\HelloWorld.txt
Hello World from DSC!

Reaplicando a configuração

Para ver sua configuração ser aplicada novamente, você pode remover o arquivo de texto criado por ela. Em seguida, use o cmdlet Start-DSCConfiguration com o parâmetro -UseExisting. O parâmetro -UseExisting instrui Start-DSCConfiguration a reaplicar o arquivo "current.mof", que representa a configuração aplicada com sucesso mais recentemente.

Remove-Item -Path C:\Temp\HelloWorld.txt

Próximas etapas