我正在努力通过powershell dsc配置重新启动。
这是我的设想:
将azure rm模板部署与visual studio 2017资源组项目一起使用:
-
已成功将虚拟机部署为嵌套(链接)模板
-
接下来,同样作为依赖于vm部署的嵌套(链接)模板,将创建powershell dsc扩展模板
-
在powershell dsc配置中,应在特定阶段强制重新启动
-
尝试了两种方案:
a)
在Windows Server 2016数据中心和
b)
Windows服务器2012
-
两种情况都报告失败。
a)
第一个在重新启动时失败。
b)
然而,第二个似乎重新启动并完成配置,但在资源组部署和vs输出上仍然报告失败。
-
在这两种情况下,错误都是:“dsc配置‘main’已完成,但有错误。以下是前几个:c发生了一个一般性错误,而不是由更具体的错误代码所覆盖。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服务。然后我注意到,如果在机器上启动重新启动,配置将成功应用。因此,重新启动的解决方案…