Como fazer o tratamento adequado de erros em uma configuração de envio?

4

Atualmente, estou construindo um ambiente de laboratório para ter uma ideia do que a DSC pode realizar e de quais são os limites.

Temos um requisito para enviar configurações individuais para grupos de nós com base em critérios como sistema operacional, associação ao grupo do AD e UOs contendo os destinos.

Então desenvolvi o seguinte script exemplar:

# Pulls computer objects from Active Directory
Function Get-Nodes
{
    Param($OperatingSystem)

    Get-AdComputer -Filter 'OperatingSystem -eq ${OperatingSystem}' -SearchBase "OU=SomeThing,DC=contoso,DC=com"
}

# Defines the configuration to apply
Configuration ConfigureHostsPush 
{
    Node $Allnodes.NodeName
    {
        # This resource is not able to delete a key, only values 
        Registry ConfigureRegistry
        {
            Ensure = "Present"
            Key = "HKEY_LOCAL_MACHINE\SOFTWARE\"
            ValueName = "MachineType"
            ValueData = "Hyper-V"
        }

        # This logs the defined message at the _destination_ host
        # within Microsoft->Windows->DesiredStateConfiguration->Analytic
        # requires showing and enabling the log first!
        Log LogSuccessfulRegistry
        {
            Message = "Successfully configued the defined registry value"
            DependsOn = "[Registry]ConfigureRegistry"
        }
    }
}

$nodes = Get-Nodes -OperatingSystem "Windows Server 2012 R2 Standard"
# $nodes = Get-Nodes -OperatingSystem "Windows Server 2008 R2 Standard"
# $nodes = Get-Nodes -OperatingSystem "Windows 7 Professional"

# Pulls a list of nodes into a hash table
$ConfigData = @{
    AllNodes = @(
        foreach ($node in $nodes)
        {
            @{NodeName = $node.Name}
        }
    )
}

# Generate the MOFs based on the configuration and hosts pulled from AD
ConfigureHostsPush -ConfigurationData $ConfigData

# Actually push out the configuration to the nodes
Start-DscConfiguration -wait -Path D:\DATA\DSC\ConfigureHostsPush

No entanto, alguns dos nós nem sempre são alcançáveis e estão offline no meu caso. Como devo fazer o tratamento e registro de erros? Então eu posso mais tarde controlar quais nós foram configurados com sucesso ou precisam de reconfiguração.

Eu sei que posso usar o recurso de log do DSC, mas isso parece ser bastante limitado e só gera logs no lado do nó de LCM / destino.

    
por Matze 18.11.2014 / 14:24

1 resposta

0

Uma abordagem seria simplesmente não acompanhar. Basta colocar todos os seus arquivos mof em uma pasta e fazer com que uma tarefa agendada seja executada duas vezes ao dia e enviada para seus nós. Isso seria muito fácil de configurar e gerenciar. Configure e esqueça.

O caso de uso esperado é configurar um servidor pull. Você ainda precisa configurar cada nó para conversar com o servidor pull. Como os nós precisam fazer check-in com o servidor pull, você tem um local central que informa se um nó fez check-in e está configurado corretamente. Você também pode alterar a configuração em um servidor pull e o nó o obterá quando fizer check-in em seguida. Você não precisa tomar conta do processo de envio.

Você enfrentará seus maiores problemas no início, tentando configurar todos os servidores existentes. Mas, no futuro, a implantação de um novo servidor estará em um estado que você pode gerenciar de perto durante o processo de provisionamento.

    
por 26.11.2014 / 06:03