通过 ARM 模板在 运行 DSC 配置之前配置 Azure VM LCM
Configure Azure VM LCM before running DSC Configuration via ARM template
我正在尝试通过 ARM 模板配置 Azure VM,并且需要在 VM 上设置本地配置管理器以允许在 运行 DSC 配置之前重新启动。我有一种有时有效但并非总是有效的方法。我是 运行 以下脚本,通过 Azure CustomScriptExtension
[DscLocalConfigurationManager()]
Configuration ConfigureLcm {
Node localhost {
Settings {
RebootNodeIfNeeded = $true
}
}
}
if (!(Get-DscLocalConfigurationManager).RebootNodeIfNeeded) {
ConfigureLcm -OutputPath C:\Config
Set-DscLocalConfigurationManager -Path C:\Config
}
然后是 DSC 扩展名。似乎 CustomScriptExtension 有效,但 DSC 扩展可能会将 RebootNodeIfNeeded 更改回 false。 DSC 扩展依赖于 CustomScriptExtension。
{
"type": "extensions",
"name": "DSC",
"apiVersion": "2015-06-15",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'))]",
"[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'), '/extensions/configlcm')]"
有没有其他人遇到过这种情况?
DSC 扩展将覆盖本地配置管理器 (LCM),如果您没有 LCM 的明确设置,它们将恢复为默认设置。因此,您需要在用于 DSC 扩展的配置函数中再次设置它:
Configuration Main
{
Node localhost
{
LocalConfigurationManager
{
RebootNodeIfNeeded = $true
...
}
# Your other resources
...
}
}´
我正在尝试通过 ARM 模板配置 Azure VM,并且需要在 VM 上设置本地配置管理器以允许在 运行 DSC 配置之前重新启动。我有一种有时有效但并非总是有效的方法。我是 运行 以下脚本,通过 Azure CustomScriptExtension
[DscLocalConfigurationManager()]
Configuration ConfigureLcm {
Node localhost {
Settings {
RebootNodeIfNeeded = $true
}
}
}
if (!(Get-DscLocalConfigurationManager).RebootNodeIfNeeded) {
ConfigureLcm -OutputPath C:\Config
Set-DscLocalConfigurationManager -Path C:\Config
}
然后是 DSC 扩展名。似乎 CustomScriptExtension 有效,但 DSC 扩展可能会将 RebootNodeIfNeeded 更改回 false。 DSC 扩展依赖于 CustomScriptExtension。
{
"type": "extensions",
"name": "DSC",
"apiVersion": "2015-06-15",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'))]",
"[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'), '/extensions/configlcm')]"
有没有其他人遇到过这种情况?
DSC 扩展将覆盖本地配置管理器 (LCM),如果您没有 LCM 的明确设置,它们将恢复为默认设置。因此,您需要在用于 DSC 扩展的配置函数中再次设置它:
Configuration Main
{
Node localhost
{
LocalConfigurationManager
{
RebootNodeIfNeeded = $true
...
}
# Your other resources
...
}
}´