如何在推送设置中正确处理错误?

如何在推送设置中正确处理错误?

我目前正在构建一个实验室环境,以了解 DSC 可以完成什么以及其局限性在哪里。

我们需要根据操作系统、AD 组成员身份和包含目标的 OU 等标准将一次性配置推送到节点组。

因此我开发了以下示例脚本:

# 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

但是,有些节点并不总是可访问的,而且在我的情况下处于离线状态。我应该如何处理错误和记录日志?这样我以后就可以控制哪些节点已成功配置或需要重新配置。

我知道我可以使用 DSC 日志资源,但它似乎非常有限,并且只能在 LCM/目标节点端生成日志。

答案1

一种方法就是不进行跟踪。只需将所有 mof 文件放在一个文件夹中,并每天运行两次计划任务,将它们推送到您的节点。这将非常容易设置和管理。设置好后就忘掉它吧。

预期用例是设置拉取服务器。您仍然必须配置每个节点以与拉取服务器通信。由于节点必须与拉取服务器签到,因此您有一个中心位置可以告诉您节点是否签到并配置正确。您还可以更改拉取服务器上的配置,节点将在下次签到时获取该配置。您不必照看推送过程。

一开始,您将面临最大的问题,即尝试配置所有现有服务器。但今后,部署新服务器将处于一种您可以在配置过程中密切管理的状态。

相关内容