我正在努力通过 Powershell DSC 配置重新启动。这是我的场景:
将 Azure RM 模板部署与 Visual Studio 2017 资源组项目一起使用:
- VM 已成功部署为嵌套(链接)模板
- 接下来,再次作为依赖于 VM 部署的嵌套(链接)模板,创建 Powershell DSC 扩展模板
- 在 Powershell DSC 配置中,应在某个阶段强制重启
- 尝试了两种方案:a)使用带有 Windows Server 2016 Datacenter 的 VM 和b) Windows Server 2012
- 两种情况都报告失败。a)第一个在重新启动时失败。b)然而,第二个似乎重新启动并完成配置,但资源组部署和 VS 输出仍然报告失败。
- 在这两种情况下,错误都是:“DSC 配置‘主’完成但出现错误。以下是前几个:发生 CA 常规错误,未包含在更具体的错误代码中。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 失败(如果我单独部署它们,一切正常)。脚本资源使用 NSSM安装Windows 服务后,配置似乎失败。然后我注意到如果在机器上启动重新启动,则配置成功应用。因此,重新启动的解决方法....