【问题标题】:Cannot wire up Azure Scaleset to Automation DSC using powershell cmdlets无法使用 powershell cmdlet 将 Azure Scaleset 连接到自动化 DSC
【发布时间】:2019-03-13 08:35:30
【问题描述】:

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

我将事情归结为以下 sn-p(敏感变量被屏蔽):

$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

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

我感到非常接近于让这个工作正常工作,但我没有得到任何关于哪里出了问题的反馈......

【问题讨论】:

    标签: azure powershell dsc azure-automation


    【解决方案1】:

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

    1) 不将$setting$protectedSetting 哈希表编码为Json - 我原来的sn-p 在哈希表上使用ConvertTo-Json 来获取字符串json。在我的辩护中,这些参数的文档表明:“指定扩展的私有配置,作为字符串。”。我将提交一个文档错误。

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

    【讨论】:

    • TypeHandlerVersion 是一个强制参数。叹。我只需致电Get-AzureRmVMExtensionImage 即可动态发现最新版本
    猜你喜欢
    • 1970-01-01
    • 2016-06-12
    • 2017-09-16
    • 2016-05-13
    • 2018-02-03
    • 1970-01-01
    • 2020-08-11
    • 2018-04-01
    • 1970-01-01
    相关资源
    最近更新 更多