Azure DevOps无法更新VMSS的映像。错误:VM扩展“ PowershellDSC”的设置已超时

时间:2019-11-11 17:25:10

标签: azure powershell azure-devops azure-vm-scale-set

我们在Azure Devops中有一个发布管道,该管道实际上执行以下操作:

  • 从GitHub存储库中检出代码
  • 将代码上传到VSO工件存储中
  • 创建要构建的临时虚拟机
  • 部署服务
  • 运行PowerShell脚本
  • 清理模板

这一直有效直到最近。现在,在PowerShell步骤中,我看到以下错误:

Failed to update image for VMSS foo. Error: Provisioning of VM extension 'PowershellDSC' has timed out. Extension installation may be taking too long, or extension status could not be obtained.

在Azure>虚拟机规模集> Foo-扩展>扩展中,我可以看到定义的POwerShell扩展,键入DSC,但是删除它会返回相同的消息。

知道为什么会这样吗?另外,如何在不构建的情况下重现此内容?

编辑2019年11月14日

感谢您的回复。在“ Azure”>“扩展”中,我卸载了扩展,然后重新启动了比例集。然后,我恢复了扩展名并重新启动了比例尺设置。现在,我有一个与找不到密钥有关的错误。

    The DSC Extension received an incorrect input: Value for password key 'registrationKeyPrivate' is missing

这是我正在运行的用于安装PowerShell DSC扩展的命令:

    'az vmss extension set --vmss-name MyVmss --name DSC --resource-group MyVmssGroup  --version 2.76.0.0 --publisher Microsoft.Powershell --extension-instance-name MyPowershellDSCExt --settings  C:\Users\me\mylmsconfig.json'

mylmsconfig.json包含以下内容,用于配置指向Azure自动化DSC的LMS:

    {
      "Properties": [
        {
  "Name": "RegistrationKey",
  "Value": {
    "UserName": "PLACEHOLDER_DONOTUSE",
    "Password": "PrivateSettingsRef:registrationKeyPrivate"
  },
  "TypeName": "PSCredential"
},
{
  "Name": "RegistrationUrl",
  "Value": "https://uks-agentservice-prod-1.azure-automation.net/accounts/myautomationservice",
  "TypeName": "System.String"
},
{
  "Name": "NodeConfigurationName",
  "Value": "bindingsname.localhost",
  "TypeName": "System.String"
},
{
  "Name": "ConfigurationMode",
  "Value": "ApplyandAutoCorrect",
  "TypeName": "System.String"
    }
    ]
    }

需要在哪里定义“ registrationKeyPrivate”?我希望在虚拟机上运行Get-DscLocalConfigurationManager后,上述详细信息会反映在LMS配置中。

1 个答案:

答案 0 :(得分:0)

我决定使用PowerShell脚本和vmss扩展名,而不是使用DSC扩展名在规模集内的虚拟机上注册DSC拉取服务器。这行得通-这是注册DSC拉取服务器的另一种方式。

我怀疑使用较旧的VMSS DSC扩展存在问题,或者所传递的凭据不正确。