Introdução à Configuração de Estado Desejado do PowerShellGetting Started with PowerShell Desired State Configuration

Este guia descreve como começar a criar documentos de Configuração de Estado Desejado do PowerShell e aplicá-los aos computadores.This guide describes how to begin creating PowerShell Desired State Configuration documents and apply them to machines. Assume que há uma familiaridade básica com cmdlets, módulos e funções do PowerShell.It assumes basic familiarity with PowerShell cmdlets, modules, and functions.

Criar uma configuraçãoCreate a Configuration

Configurações são documentos que descrevem um ambiente.Configurations are documents that describe an environment. Os ambientes consistem em "nós", que normalmente são máquinas virtuais ou físicas.Environments consist of "nodes", which are commonly virtual or physical machines.

As configurações podem vir de várias formas.Configurations can come in a variety of forms. A maneira mais fácil de criar uma nova configuração é criar um arquivo .ps1 (script do PowerShell).The easiest way to create a new configuration is to create a .ps1 (PowerShell script) file. Para fazer isso, abra o editor escolhido por você.To do this, open your editor of choice. O ISE do PowerShell é uma boa opção, pois entenda a DSC nativamente.The PowerShell ISE is a good choice, since it understands DSC natively. Salve o seguinte como um PS1:Save the following as a PS1:

configuration MyFirstConfiguration
{
    Import-DscResource -Name WindowsFeature

    Node localhost
    {
        WindowsFeature IIS
        {
            Name = "IIS"

        }

    }

}

Partes de uma ConfiguraçãoParts of a Configuration

Configuration é uma palavra-chave que foi adicionada ao PowerShell 4.0.Configuration is a keyword that has been added to PowerShell 4.0. Significa um tipo especial de função do PowerShell usado pela Configuração de Estado Desejado.It signifies a special kind of PowerShell function used by Desired State Configuration. Neste exemplo, a função é chamada de myFirstConfiguration.In this example, the function is named myFirstConfiguration.

A próxima linha é uma instrução de importação, semelhante à importação de um módulo.The next line is an import statement, similar to importing a module. Será discutida posteriormente.It will be discussed later on.

"Nó" define o nome do computador em que essa configuração vai agir."Node" defines the machine name this configuration will act on. Embora ela seja editada localmente, as configurações podem chegar a nós remotos e configurá-los.Although this configuration is edited locally, configurations can reach out to remote nodes and configure them.

Os nós podem ser nomes ou endereços IP de computador.Nodes can be machine names or IP addresses. Você pode ter vários nós em um único documento de configuração.You can have multiple nodes in a single configuration document. Usando dados de configuração, também é possível aplicar a mesma configuração a vários nós.Using configuration data, you can also have the same configuration apply to multiple nodes. Nesse caso, o nó é "localhost" - que significa o computador local.In this case, the node is "localhost" - which means the local computer.

O próximo item é um recurso.The next item is a resource. Os recursos são blocos de construção de configurações.Resources are building blocks of configurations. Cada recurso é um módulo que define a lógica de implementação de um único aspecto de um computador.Each resource is a module that defines the implementation logic of a single aspect of a machine. Você pode exibir todos os recursos no seu computador executando Get-DscResource no PowerShell.You can view every resource on your machine by running Get-DscResource in PowerShell. Os recursos devem estar presentes no computador local e ser importados antes que possam ser usados em uma configuração com Import-DscResource, que está na segunda linha dessa configuração.Resources must be present on the local machine and imported before they can be used in a configuration with Import-DscResource which is on the second line of this configuration.

Aplicando uma ConfiguraçãoEnacting a Configuration

Se o script acima for salvo e executado, nenhuma saída será produzida.If the script above is saved and run, no output will be produced. Isso ocorre porque a configuração é apenas uma função e o script acima definiu a função, mas ainda não a executou.This is because a configuration is just a function, and the script above has defined the function but not yet run it. Depois de ser definida, a função precisa ser chamada:After the function is defined, it must be invoked:

myFirstConfiguration

Quando executadas, as funções de configuração validam a configuração.When executed, configuration functions validate the configuration is valid. Ela não deve ter nenhum erro de sintaxe, os recursos devem ter todos os parâmetros obrigatórios definidos e todos os recursos devem ser importados antes da execução.It should have no syntax errors, resources should have all mandatory parameters defined, and all resources should be imported before execution.

Depois de ser executada, a configuração cria uma pasta com seu nome contendo um arquivo .MOF file para cada nó na configuração.Once the configuration is executed, it creates a folder with the name of the configuration containing a .MOF file for every node in the configuration. O arquivo MOF é um formato de gerenciamento baseado em padrões que é usado pela DSC do PowerShell para se comunicar pela rede.The .MOF file is a standards-based management format which is used by PowerShell DSC to communicate over the network.

Para aplicar a configuração:To enact the configuration:

Start-DscConfiguration -Path ./myFirstConfiguration

É criado um trabalho do PowerShell que atinge os nós na configuração e os configura.This creates a PowerShell job that reaches out to the nodes in the configuration and configures them. Para ver a saída do trabalho, use -Wait.To see the output of the job, use -Wait.

Start-DscConfiguration -Path ./myFirstConfiguration -Wait