Início Rápido: Criar um site com DSC (Desired State Configuration)

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. O exemplo que usaremos garante que o recurso Web-Server (IIS) do servidor esteja habilitado e que o conteúdo para um site "Hello World" simples esteja presente no diretório do inetpub\wwwroot desse servidor.

Para obter uma visão geral sobre o que é a DSC e como ela funciona, confira Visão Geral da Configuração do Estado Desejado para Tomadores de Decisão.

Requisitos

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

Gravar e posicionar o arquivo index.htm

Primeiro, vamos criar o arquivo HTML que usaremos como o conteúdo do site.

Na pasta-raiz, crie uma pasta chamada test.

Em um editor de texto, digite o texto a seguir:

<head></head>
<body>
<p>Hello World!</p>
</body>

Salve-o como index.htm na pasta test que você criou anteriormente.

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, digite o seguinte:

Configuration WebsiteTest {

    # Import the module that contains the resources we're using.
    Import-DscResource -ModuleName PsDesiredStateConfiguration

    # The Node statement specifies which targets this configuration will be applied to.
    Node 'localhost' {

        # The first resource block ensures that the Web-Server (IIS) feature is enabled.
        WindowsFeature WebServer {
            Ensure = "Present"
            Name   = "Web-Server"
        }

        # The second resource block ensures that the website content copied to the website root folder.
        File WebsiteContent {
            Ensure = 'Present'
            SourcePath = 'c:\test\index.htm'
            DestinationPath = 'c:\inetpub\wwwroot'
        }
    }
}

Salve o arquivo como WebsiteTest.ps1.

Você pode ver que ele parece uma função do PowerShell, com a adição da palavra-chave Configuração usada antes do nome da função.

O bloco especifica o nó de destino a ser configurado. Nesse caso, localhost.

A configuração chama dois recursos, WindowsFeature e Arquivo. 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. Para fazer isso, você deve executar a configuração como uma função. Em um console do PowerShell, navegue até a mesma pasta em que você salvou sua configuração e execute os seguintes comandos para compilar a configuração em um arquivo MOF:

. .\WebsiteTest.ps1
WebsiteTest

Isso gerará os seguintes resultados:

Directory: C:\ConfigurationTest\WebsiteTest


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

A primeira linha torna a função de configuração disponível no console. A segunda linha executa a configuração. O resultado é que uma nova pasta, chamada WebsiteTest, é criada como uma subpasta da pasta atual. A pasta WebsiteTest contém um arquivo chamado localhost.mof. É o arquivo que pode ser aplicado ao nó de destino.

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 indica ao Gerenciador de Configurações Local (LCM), qual é o mecanismo de DSC a aplicar à configuração. O LCM realiza o trabalho de chamar os recursos de DSC para aplicar a configuração.

Observação

Para permitir que a DSC seja executada, o Windows precisa ser configurado para receber comandos remotos do PowerShell, mesmo quando você estiver executando uma configuração de localhost. Para configurar seu ambiente corretamente de forma simples, basta executar Set-WsManQuickConfig -Force em um Terminal do PowerShell elevado.

Em um console do PowerShell, navegue até a mesma pasta em que você salvou sua configuração e execute o mesmo comando:

Start-DscConfiguration .\WebsiteTest

Testar a configuração

Você pode chamar o cmdlet Get-DscConfigurationStatus para ver se a configuração foi bem-sucedida.

Você também pode testar os resultados diretamente, neste caso, pesquisando o http://localhost/ em um navegador da Web. Você deve ver a página de HTML "Hello World" que criou como a primeira etapa deste exemplo.

Próximas etapas