2017-03-09 85 views
0

我试图通过ARM模板配置Azure VM,并且需要在VM上设置本地配置管理器以允许在运行DSC配置之前重新启动。我有一种方法有时可以使用,但并不总是如此。我通过Azure运行以下脚本CustomScriptExtension在通过ARM模板运行DSC配置之前配置Azure VM LCM

[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')]" 

有没有人经历过这个?

回答

0

DSC扩展将覆盖本地配置管理器(LCM),如果您没有LCM的显式设置,它们将恢复为默认设置。因此,您需要在您用于DSC扩展的配置功能中重新设置它:

Configuration Main 
{ 
    Node localhost 
    { 
    LocalConfigurationManager 
    { 
     RebootNodeIfNeeded = $true 
     ... 
    } 
    # Your other resources 
    ... 
    } 
}´ 
相关问题