Compartilhar via


about_DesiredStateConfiguration

Descrição breve

Fornece uma breve introdução ao recurso DSC (Configuração de Estado Desejado) do PowerShell.

Descrição longa

A DSC é uma plataforma de gerenciamento no PowerShell que permite implantar e gerenciar dados de configuração para serviços de software e gerenciar o ambiente no qual esses serviços são executados.

A DSC fornece um conjunto de extensões de linguagem do PowerShell, novos cmdlets e recursos que você pode usar para especificar declarativamente como deseja que o estado do seu ambiente de software seja configurado. Também fornece um meio para manter e gerenciar as configurações existentes.

A DSC é introduzida no PowerShell 4.0.

Para obter informações detalhadas sobre a DSC, consulte Visão geral da configuração de estado desejado do PowerShell.

DESENVOLVENDO RECURSOS DE DSC COM CLASSES

A partir do PowerShell 5.0, você pode desenvolver recursos de DSC usando classes. Para obter mais informações, consulte about_Classes e Escrevendo um recurso DSC personalizado com classes do PowerShell.

USANDO O DSC

Para usar a DSC para configurar seu ambiente, primeiro defina um bloco de script do PowerShell usando a palavra-chave Configuration, seguida por um identificador, que por sua vez é seguido pelo par de chaves que delimitam o bloco. Dentro do bloco de configuração, você pode definir blocos de nós que especificam o estado de configuração desejado para cada nó (computador) no ambiente. Um bloco de nó começa com a palavra-chave Node, seguida pelo nome do computador de destino, que pode ser uma variável. Depois do nome do computador, vêm as chaves que delimitam o bloco do nó. Dentro do bloco de nós, você pode definir blocos de recursos para configurar recursos específicos. Um bloco de recursos começa com o nome do tipo do recurso, seguido pelo identificador que você deseja especificar para esse bloco, seguido pelas chaves que delimitam o bloco, conforme mostrado no exemplo a seguir.

Configuration MyWebConfig {
    # Parameters are optional
    param ($MachineName, $WebsiteFilePath)
    # A Configuration block can have one or more Node blocks
    Node $MachineName
    {
        # Next, specify one or more resource blocks
        # WindowsFeature is one of the resources you can use in a Node block
        # This example ensures the Web Server (IIS) role is installed
        WindowsFeature IIS
        {
            # To ensure that the role is not installed, set Ensure to "Absent"
            Ensure = "Present"
            Name = "Web-Server" # Use the Name property from Get-WindowsFeature
        }

        # You can use the File resource to create files and folders
        # "WebDirectory" is the name you want to use to refer to this instance
        File WebDirectory
        {
            Ensure = "Present"  # You can also set Ensure to "Absent"
            Type = "Directory" # Default is "File"
            Recurse = $true
            SourcePath = $WebsiteFilePath
            DestinationPath = "C:\inetpub\wwwroot"

            # Ensure that the IIS block is successfully run first before
            # configuring this resource
            DependsOn = "[WindowsFeature]IIS"  # Use for dependencies
        }
    }
}

Para criar uma configuração, invoque o bloco Configuration da mesma forma que invocaria uma função do PowerShell, passando todos os parâmetros esperados que você possa ter definido (dois no exemplo acima). Por exemplo, neste caso:

MyWebConfig -MachineName "TestMachine" -WebsiteFilePath `
  "\\filesrv\WebFiles" -OutputPath "C:\Windows\system32\temp"
# OutputPath is optional

Isso gera um arquivo MOF por nó no caminho especificado. Esses arquivos MOF especificam a configuração desejada para cada nó. Em seguida, use o cmdlet a seguir para analisar os arquivos MOF de configuração, enviar a cada nó sua configuração correspondente e executar essas configurações. Observe que você não precisa criar um arquivo MOF separado para recursos DSC baseados em classe.

Start-DscConfiguration -Verbose -Wait -Path "C:\Windows\system32\temp"

USANDO O DSC PARA MANTER O ESTADO DE CONFIGURAÇÃO

Com o DSC, a configuração é idempotente. Isso significa que, se você usar o DSC para executar a mesma configuração mais de uma vez, o estado de configuração resultante será sempre o mesmo. Por isso, se você suspeitar que algum nó em seu ambiente pode ter se desviado do estado de configuração desejado, poderá executar a mesma configuração de DSC novamente para trazê-los de volta ao estado desejado. Você não precisa modificar o script de configuração para endereçar apenas os recursos cujo estado se desviou do estado desejado.

O exemplo a seguir mostra como você pode verificar se o estado real da configuração em um determinado nó se desviou da última configuração de DSC promulgada no nó. Neste exemplo, estamos verificando a configuração do computador local.

$session = New-CimSession -ComputerName "localhost"
Test-DscConfiguration -CimSession $session

RECURSOS DE DSC INTEGRADOS

Você pode usar os seguintes recursos internos em seus scripts de configuração:

Nome Propriedades
Arquivo {DestinationPath, Atributos, Soma de Verificação, Conteúdo...}
Arquivamento {Destino, Caminho, Soma de Verificação, Credencial...}
Ambiente {nome, depende, garantir, caminho...}
Grupo {GroupName, Credencial, DependsOn, Descrição...}
Log {Mensagem, DependsOn, PsDscRunAsCredential}
Pacote {Nome, Caminho, ProductId, Argumentos...}
Registro {Chave, ValueName, DependsOn, Garantir...}
Script {GetScript, SetScript, TestScript, Credencial...}
Serviço {Nome, BuiltInAccount, Credencial, Dependências...}
Usuário {Nome de usuário, DependsOn, Descrição, Desativado...}
Esperar por tudo {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
Esperar por qualquer {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
Espere por alguns {NodeCount, NodeName, ResourceName, DependsOn...}
WindowsFeature {Nome, Credencial, Depende, Garantir...}
WindowsOptionalFeature {Nome, DependsOn, Garantir, LogLevel...}
WindowsProcess {Argumentos, Caminho, Credencial, DependsOn...}

Para obter uma lista de recursos de DSC disponíveis em seu sistema, execute o Get-DscResource cmdlet.

Observação

Nas versões do PowerShell antes de 7.0, Get-DscResource não encontra recursos de DSC baseados em classe.

O exemplo neste tópico demonstra como usar os recursos File e WindowsFeature. Para ver todas as propriedades que você pode usar com um recurso, insira o cursor na palavra-chave resource (por exemplo, File) no script de configuração no ISE do PowerShell, mantenha pressionada a tecla CTRL+SPACEBAR

ENCONTRE MAIS RECURSOS

Você pode baixar, instalar e saber mais sobre muitos outros recursos de DSC disponíveis que foram criados pela comunidade de usuários do PowerShell e do DSC e pela Microsoft. Visite a Galeria do PowerShell para navegar e saber mais sobre os recursos de DSC disponíveis.

Confira também