Share via


about_DesiredStateConfiguration

DESCRIÇÃO BREVE

Fornece uma breve introdução ao recurso de Desired State Configuration (DSC) do PowerShell.

DESCRIÇÃO LONGA

O 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.

O 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.

O DSC é introduzido no PowerShell 4.0.

Para obter informações detalhadas sobre o DSC, consulte Visão geral de Desired State Configuration do PowerShell na Biblioteca do TechNet.

DESENVOLVENDO RECURSOS 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 Escrever um recurso DSC personalizado com classes do PowerShell no Microsoft TechNet.

USANDO DSC

Para usar o DSC para configurar seu ambiente, primeiro defina um bloco de script do PowerShell usando o palavra-chave de Configuração, seguido por um identificador, que, por sua vez, é seguido pelo par de chaves delimitando o bloco. Dentro do bloco de configuração, você pode definir blocos de nó que especificam o estado de configuração desejado para cada nó (computador) no ambiente. Um bloco de nó começa com o nó palavra-chave, seguido pelo nome do computador de destino, que pode ser uma variável. Após o nome do computador, vêm as chaves que delimitam o bloco de 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 Configuração da mesma maneira que você invocaria uma função do PowerShell, passando todos os parâmetros esperados que você possa ter definido (dois no exemplo acima). Por exemplo, nesse 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 promulgar essas configurações. Observe que você não precisa criar um arquivo MOF separado para recursos de DSC baseados em classe.

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

USANDO DSC PARA MANTER O ESTADO DE CONFIGURAÇÃO

Com o DSC, a configuração é idempotente. Isso significa que, se você usar o DSC para implantar a mesma configuração mais de uma vez, o estado de configuração resultante sempre será o mesmo. Por isso, se você suspeitar que quaisquer nós em seu ambiente possam ter desativado do estado desejado de configuração, você poderá decretar 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 abordar apenas os recursos cujo estado descompassou do estado desejado.

O exemplo a seguir mostra como você pode verificar se o estado real da configuração em um determinado nó descompassou 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 DSC INTERNOS

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

Nome Propriedades
Arquivo {DestinationPath, Attributes, Checksum, Content...}
Arquivo {Destination, Path, Checksum, Credential...}
Ambiente {Name, DependsOn, Ensure, Path...}
Grupo {GroupName, Credential, DependsOn, Description...}
Registro {Message, DependsOn, PsDscRunAsCredential}
Pacote {Name, Path, ProductId, Arguments...}
Registro {Key, ValueName, DependsOn, Ensure...}
Script {GetScript, SetScript, TestScript, Credential...}
Serviço {Name, BuiltInAccount, Credential, Dependencies...}
Usuário {UserName, DependsOn, Description, Disabled...}
WaitForAll {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForAny {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForSome {NodeCount, NodeName, ResourceName, DependsOn...}
WindowsFeature {Name, Credential, DependsOn, Ensure...}
WindowsOptionalFeature {Name, DependsOn, Ensure, LogLevel...}
WindowsProcess {Arguments, Path, Credential, DependsOn...}

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

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 no recurso palavra-chave (por exemplo, Arquivo) dentro do script de configuração no ISE do PowerShell, mantenha pressionada a tecla CTRL e pressione SPACEBAR.

LOCALIZAR 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 DSC e pela Microsoft. Visite o Galeria do PowerShell para navegar e saber mais sobre os recursos de DSC disponíveis.

CONSULTE TAMBÉM

Visão geral de Desired State Configuration do PowerShell

Recursos internos de Desired State Configuration do PowerShell

Criar recursos de Desired State Configuration personalizados do PowerShell