Расширение Azure VM Powershell DSC с развертыванием шаблона - процесс завершается неудачно при настройке перезагрузки

Я борюсь с настройкой перезагрузки через Powershell DSC. Это мой сценарий:

Использование развертываний шаблонов Azure RM с проектом группы ресурсов Visual Studio 2017:

  1. Виртуальная машина успешно развернута как вложенный (связанный) шаблон
  2. Затем, снова в качестве вложенного (связанного) шаблона, зависящего от развертывания виртуальной машины, создается шаблон расширения Powershell DSC.
  3. В конфигурации Powershell DSC перезагрузка должна быть принудительной на определенном этапе.
  4. Пробовал два сценария: а) использование виртуальной машины с Windows Server 2016 Datacenter и б) Windows Server 2012
  5. Оба сценария сообщают об ошибке. а) Первый сбой при перезагрузке. b) Второй, однако, похоже, перезагружается и завершает работу с конфигурациями, но все же сообщается об ошибке при развертывании группы ресурсов и выходе VS.
  6. В обоих сценариях ошибка: "Конфигурация DSC" Основная "завершена с ошибкой (ями). Ниже перечислены первые несколько: произошла общая ошибка C A, которая не покрыта более конкретным кодом ошибки. C"

Вот конфигурация DSC:

Configuration Main
{

param(
    ... a few parameters here ...
)

### required only for Windows Server 2012
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process -Force
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser -Force
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine -Force
###


Import-DscResource -ModuleName PSDesiredStateConfiguration
Import-DscResource -ModuleName xPendingReboot

Node "localhost"
{
    LocalConfigurationManager
    {
        RebootNodeIfNeeded = $true
    }

    ... Initial Configuration ...

    Script Reboot
    {
        TestScript = {
            return (Test-Path HKLM:\SOFTWARE\MyMainKey\RebootKey)
        }
        SetScript = {
            New-Item -Path HKLM:\SOFTWARE\MyMainKey\RebootKey -Force
             $global:DSCMachineStatus = 1 
        }
        GetScript = { return @{result = 'Reboot'}}
        DependsOn = '<Initial Configuration>'
    } 
    # Reboot if pending
    xPendingReboot RebootCheck
    {
        Name = "RebootCheck"
    }

    ... Configuration Continued ...
}
}

Любая помощь будет оценена, спасибо!

НЕКОТОРЫЕ ОБНОВЛЕНИЯ:

На самом деле, мое требование "перезагрузки" - это обходной путь, потому что, когда два развертывания выполняются как вложенные шаблоны один за другим, происходит сбой Powershell DSC (если я разверну их отдельно, все будет нормально). Конфигурация, кажется, терпит неудачу после того, как Ресурс Сценария установил службу Windows, используя NSSM. Затем я заметил, что если на машине инициируется перезапуск, конфигурация применяется успешно. Таким образом, обходной путь с перезагрузкой....

1 ответ

в этом случае решение заключалось в добавлении:

      DependsOn = "[xPendingReboot]RebootCheck"

ко всем ресурсам после xPendingReboot

Другие вопросы по тегам