Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Breve descrição
Fornece uma breve introdução ao recurso de Configuração de Estado Desejado (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. Ele 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 DSC, consulte Visão geral da configuração de estado desejado do PowerShell.
Desenvolvendo recursos DSC com classes
A partir do PowerShell 5.0, você pode desenvolver recursos 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 o DSC para configurar seu ambiente, primeiro defina um bloco de script do PowerShell usando a palavra-chave Configuração, seguido 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ó que especificam o estado de configuração desejado para cada nó (computador) no ambiente. Um bloco de nó começa com a palavra-chave Nó, 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ó, 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 forma que invocaria uma função do PowerShell, passando quaisquer 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 especificar 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 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 desejado de configuração, poderá executar a mesma configuração DSC novamente para trazê-los de volta ao estado desejado. Não é necessário modificar o script de configuração para abordar 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 DSC decretada no nó. Neste exemplo, estamos verificando a configuração do computador local.
$session = New-CimSession -ComputerName "localhost"
Test-DscConfiguration -CimSession $session
Recursos DSC integrados
Você pode usar os seguintes recursos internos em seus scripts de configuração:
| Nome | Propriedades |
|---|---|
| Ficheiro | {DestinationPath, Atributos, Checksum, Conteúdo...} |
| Arquivo | {Destino, caminho, soma de verificação, credencial...} |
| Environment | {Nome, DependsOn, Assegurar, Caminho...} |
| Agrupar | {GroupName, Credential, DependsOn, Descrição...} |
| Registo | {Mensagem, DependsOn, PsDscRunAsCredential} |
| Pacote | {Nome, Caminho, ProductId, Argumentos...} |
| Registo | {Key, ValueName, DependsOn, Assegurar...} |
| Script | {GetScript, SetScript, TestScript, Credencial...} |
| Serviço | {Nome, BuiltInAccount, Credencial, Dependências...} |
| User | {UserName, DependsOn, Descrição, Desativado...} |
| WaitForAll | {NodeName, ResourceName, DependsOn, PsDscRunAsC...} |
| WaitForAny | {NodeName, ResourceName, DependsOn, PsDscRunAsC...} |
| WaitForSome | {NodeCount, NodeName, ResourceName, DependsOn...} |
| WindowsFeature | {Nome, Credencial, DependsOn, Garantir...} |
| WindowsOptionalFeature | {Nome, DependsOn, Ensure, LogLevel...} |
| WindowsProcess | {Argumentos, caminho, credencial, dependsOn...} |
Para obter uma lista de recursos DSC disponíveis em seu sistema, execute o Get-DscResource cmdlet.
Nota
Nas versões do PowerShell abaixo de 7.0, Get-DscResource não encontra recursos 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) dentro do script de configuração no ISE do PowerShell, mantenha pressionada a tecla CTRL+SPACEBAR
Encontre mais recursos
Você pode baixar, instalar e aprender sobre muitos outros recursos DSC disponíveis que foram criados pela comunidade de usuários do PowerShell e DSC e pela Microsoft. Visite a Galeria do PowerShell para navegar e saber mais sobre os recursos DSC disponíveis.