Конфигурация DSC продолжает перезапускаться

У меня есть LocalConfigurationManager, настроенный следующим образом:

[DSCLocalConfigurationManager()]
Configuration LCMConfig
{
    Node localhost
    {
        Settings
        {
            RebootNodeIfNeeded = $true
            ActionAfterReboot = 'ContinueConfiguration'
            AllowModuleOverwrite = $true
            DebugMode = 'All'
        }
    }
}
LCMConfig
Set-DscLocalConfigurationManager -Path .\LCMConfig -Verbose -Force

Затем я запускаю конфигурацию DSC через

Start-DscConfiguration -Path .\RDS -Verbose -Wait

Эта конфигурация настраивает сервер RemoteApp, который включает в себя целый ряд шагов и несколько перезагрузок. Одна из этих перезагрузок повторяется снова и снова. Когда происходит перезагрузка, я могу войти в систему достаточно долго, чтобы выполнить быструю команду или две, прежде чем DSC снова перезапустит систему. Как я могу узнать, на каком конкретном ресурсе в конфигурации зависает DSC.

Если я побегу

Remove-DSCConfiguration -Stage Pending,Current,Previous

перезагрузки прекращаются... но тогда я, кажется, теряю всю информацию о том, где происходит проблема.

Я могу зафиксировать выходные данные Get-DSCConfiguration, но не могу понять смысл вывода, чтобы сказать, где происходит цикл перезагрузки.

Как я могу отладить это?


person Jeff    schedule 10.04.2016    source источник


Ответы (1)


Есть много способов решить эту проблему:

  1. Установите RebootNodeIfNeeded в true и ActionAfterReboot в StopConfiguration. Таким образом, когда машина включится после перезагрузки, DSC не применит конфигурацию автоматически. Затем вы можете из консоли powershell запустить: Start-DscConfiguration -UseExisting -wait -verbose для захвата подробных сообщений. Последний ресурс, который выполняется, — это тот, который запросил перезагрузку.

  2. Запустите командлет Get-DscConfigurationStatus, чтобы получить статус последнего запуска конфигурации. Этот командлет завершится ошибкой, если в DSC уже запущено что-то еще. Это даст вам список ресурсов, которые находятся в желаемом состоянии и не в желаемом состоянии. Он также даст JobId для операции. Найдите %windir%\system32\Configuration\ConfigurationStatus\{JobId}*.json. Этот файл json содержит подробные сообщения для запуска конфигурации. Это будет работать только с WMF 5.0 RTM.

  3. Получите модуль xDSCDiagnostics и используйте информацию из этого блога для устранения неполадок. https://blogs.msdn.microsoft.com/powershell/2014/02/11/dsc-diagnostics-module-analyze-dsc-logs-instantly-now/

person N.Gupta    schedule 12.04.2016