无法使用Powershell cmdlet将Azure Scaleset连接到Automation DSC

时间:2018-10-08 16:07:41

标签: azure powershell dsc azure-automation

我正在尝试使用DSC扩展将Scaleset VM连接到Azure自动化DSC服务器。这不是通过门户网站公开的,但是从this documentation看来,应该可以通过模板和powershell cmd行来实现。

我将煮沸的内容归纳为以下代码段(屏蔽了敏感的var):

$settings = @{
    configurationArguments = @{
        registrationUrl = "https://ne-agentservice-prod-1.azure-automation.net/accounts/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx"
    }
}    
$protectedSettings = @{
    configurationArguments = @{
        registrationKey = @{
            userName = "NOT_USED"
            password = "/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="
        } 
    } 
}

Get-AzureRmVmss -ResourceGroupName $resourceGroupName -VMScaleSetName $VmSsName | 
    Add-AzureRmVmssExtension -Name "DSC" -Publisher "Microsoft.Powershell" -Type "DSC" -TypeHandlerVersion "2.24" -Setting $settings -ProtectedSetting $protectedSettings |
    Update-AzureRmVmss

在门户中,列出了扩展名。但是什么也没发生:我既没有在Automation DSC“节点”列表中看到任何VM,也没有在规模集VM上看到DSC活动-DSC的事件查看器为空; “ c:\ WindowsAzure \ Logs”文件夹与DSC没有任何关系。

我很想接近完成这项工作的意愿,但是对于错误的原因却没有任何反馈...

1 个答案:

答案 0 :(得分:0)

我已经设法将Add-AzureRmVmssExtension作为New-AzureRmVmss Powershell管道流程的一部分。我需要进行两项更改:

1)不会将$setting$protectedSetting哈希表编码为Json-我的原始代码片段是在哈希表上使用ConvertTo-Json来获取字符串json。为了我的辩护,这些参数的文档指出:“为扩展名指定专用配置,为字符串。”。我将提交文档错误。

2)(我认为这是主要原因),我将TypeHandlerVersion更新为2.76,这是当前的最新版本-来自Internet示例的复制粘贴使我获得了2.24。我要看看是否可以完全不指定版本-我总是想要最新的版本。