Расширение Azure VM Powershell DSC с развертыванием шаблона - процесс завершается неудачно при настройке перезагрузки
Я борюсь с настройкой перезагрузки через Powershell DSC. Это мой сценарий:
Использование развертываний шаблонов Azure RM с проектом группы ресурсов Visual Studio 2017:
- Виртуальная машина успешно развернута как вложенный (связанный) шаблон
- Затем, снова в качестве вложенного (связанного) шаблона, зависящего от развертывания виртуальной машины, создается шаблон расширения Powershell DSC.
- В конфигурации Powershell DSC перезагрузка должна быть принудительной на определенном этапе.
- Пробовал два сценария: а) использование виртуальной машины с Windows Server 2016 Datacenter и б) Windows Server 2012
- Оба сценария сообщают об ошибке. а) Первый сбой при перезагрузке. b) Второй, однако, похоже, перезагружается и завершает работу с конфигурациями, но все же сообщается об ошибке при развертывании группы ресурсов и выходе VS.
- В обоих сценариях ошибка: "Конфигурация 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