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.