【问题标题】:Can't Add Azure DSC Extension to VM in ARM mode无法在 ARM 模式下将 Azure DSC 扩展添加到 VM
【发布时间】:2016-11-10 12:18:45
【问题描述】:

我需要基于映像创建 VM(Windows Server 2016 上的 SQL Server 2016)并通过 powershell 为其添加 DSC 扩展。我有template.json,它是我在门户中创建VM(Windows 2016服务器上的sql2016服务器)时保存的parameters.json文件(在参数文件中,我定义了发布sdc zip和管理员密码的url)。 带有配置的 Zip 文件位于 github 公共存储库中。它是由 powershell publish commandlet 创建的。 在此之后,我的下一步是:

Login-AzureRmAccount
# Create resource group
New-AzureRmResourceGroup -Name orsql1 -Location 'North Europe' # succeed

# Define deployment variables
$Deployment = @{
    ResourceGroupName = 'orsqllast';
    Mode = 'Complete';
    TemplateFile = 'template.json';
    TemplateParameterFile = 'parameters.json';
    Force = $true;
}
New-AzureRmResourceGroupDeployment @Deployment  -DeploymentDebugLogLevel All

dsc1.ps1 内容:

configuration IISInstall
{
    node ("localhost")
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

经过很长时间我得到这个错误:

New-AzureRmResourceGroupDeployment : 14:02:10 - Resource Microsoft.Resources/deployments 'Microsoft.DSC-20161
010122604' failed with message '{
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "DeploymentFailed",
        "message": "At least one resource deployment operation failed. Please list deployment operations for 
details. Please see https://aka.ms/arm-debug for usage details.",
        "details": [
          {
            "code": "Conflict",
            "message": "{\r\n  \"status\": \"Failed\",\r\n  \"error\": {\r\n    \"code\": \"ResourceDeploymen
tFailure\",\r\n    \"message\": \"The resource operation completed with terminal provisioning state 'Failed'.
\",\r\n    \"details\": [\r\n      {\r\n        \"code\": \"VMExtensionProvisioningError\",\r\n        \"mess
age\": \"VM has reported a failure when processing extension 'Microsoft.Powershell.DSC'. Error message: \\\"E
rror unpacking 'dsc1.ps1.zip'; verify this is a valid ZIP package.\\nError details: Exception calling \\\"Ext
ractToDirectory\\\" with \\\"2\\\" argument(s): \\\"End of Central Directory record could not be found.\\\"\\
\".\"\r\n      }\r\n    ]\r\n  }\r\n}"
          }
        ]
      }
    ]
  }
}'
At line:14 char:1
+ New-AzureRmResourceGroupDeployment @Deployment  -DeploymentDebugLogLe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-AzureRmResourceGroupDeployment], Exception
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResour 
   ceGroupDeploymentCmdlet

New-AzureRmResourceGroupDeployment : 14:02:10 - At least one resource deployment operation failed. Please lis
t deployment operations for details. Please see https://aka.ms/arm-debug for usage details.
At line:14 char:1
+ New-AzureRmResourceGroupDeployment @Deployment  -DeploymentDebugLogLe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-AzureRmResourceGroupDeployment], Exception
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResour 
   ceGroupDeploymentCmdlet

New-AzureRmResourceGroupDeployment : 14:02:10 - Template output evaluation skipped: at least one resource dep
loyment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug 
for usage details.
At line:14 char:1
+ New-AzureRmResourceGroupDeployment @Deployment  -DeploymentDebugLogLe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-AzureRmResourceGroupDeployment], Exception
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResour 
   ceGroupDeploymentCmdlet

New-AzureRmResourceGroupDeployment : 14:02:10 - Template output evaluation skipped: at least one resource dep
loyment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug 
for usage details.
At line:14 char:1
+ New-AzureRmResourceGroupDeployment @Deployment  -DeploymentDebugLogLe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-AzureRmResourceGroupDeployment], Exception
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResour 
   ceGroupDeploymentCmdlet

zip 是有效的,我使用了另一个 - 同样的错误。 部分parameters.json

"ex0_vmName": {
"value": "node1"
},
"ex0_location": {
"value": "northeurope"
},
"ex0_modulesUrl": {
"value": "https://github.com/myname/mydsc/blob/master/dsc1.ps1.zip"
},
"ex0_configurationFunction": {
"value": "dsc1.ps1\\IISInstall"
},
"ex0_wmfVersion": {
"value": "latest"
},
"ex0_privacy": {
"value": "Enable"
},
"ex0_version": {
"value": "2.8"
}

【问题讨论】:

    标签: powershell azure azure-resource-manager dsc


    【解决方案1】:

    我建议您在 c:\windowsazure\logs 中查阅 VM 本身的日志。在 c:\extensions(现在是 C:\Packages\Plugins)下,您可以找到 zip 包和 DSC 扩展文件。

    解决此问题的最简单方法是使用门户创建 DSC 扩展。如果它失败并出现相同的错误,您需要重新创建 zip 文件。我在使用 zip 包时遇到了同样的错误,并通过重新创建它来解决它们。

    我还建议您迁移到 Azure 自动化。根据您的范围,您可以每月免费使用 500 分钟,并且可以将 mof 上传到 Azure 自动化。而且我发现 Azure 自动化比 DSC 扩展更加一致。

    【讨论】:

    • 提交时我错了 zip 是有效的。任何方式感谢您的帮助! )
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多