我正在尝试使用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没有任何关系。
我很想接近完成这项工作的意愿,但是对于错误的原因却没有任何反馈...
答案 0 :(得分:0)
我已经设法将Add-AzureRmVmssExtension
作为New-AzureRmVmss
Powershell管道流程的一部分。我需要进行两项更改:
1)不会将$setting
和$protectedSetting
哈希表编码为Json-我的原始代码片段是在哈希表上使用ConvertTo-Json
来获取字符串json。为了我的辩护,这些参数的文档指出:“为扩展名指定专用配置,为字符串。”。我将提交文档错误。
2)(我认为这是主要原因),我将TypeHandlerVersion
更新为2.76,这是当前的最新版本-来自Internet示例的复制粘贴使我获得了2.24。我要看看是否可以完全不指定版本-我总是想要最新的版本。