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