0

我正在尝试使用 ARM 模板和所需状态配置 (DSC) 将虚拟机规模集部署到 Azure。我已经创建了 DSC 配置并在它正在工作的单独 VM 上对其进行了验证。在 ARM 模板中,我对 DSC 扩展有以下定义:

{
    "name": "Microsoft.Powershell.DSC",
    "properties": {
      "publisher": "Microsoft.Powershell",
      "type": "DSC",
      "typeHandlerVersion": "2.9",
      "autoUpgradeMinorVersion": true,
      "settings": {
        "configuration": {
          "url": "publicstoragebloburi/DSC/DSC.zip",
          "script": "Main.ps1",
          "function": "Main"
        },
        "configurationArguments": {
          "MachineName": "localhost",
          "WebDeployPackagePath": PublicStorageBlobPath_App.zip",
          "UserName": "[parameters('adminUsername')]",
          "Password": "[parameters('adminPassword')]",
          "AppName": "FileScanApp",
          "AppPath": "C:\\inetpub\\dev\\MyWebApp"

        }
  }

Main.ps1 文件以及名称为 Main 的配置确实存在。Main.ps1 位于 ZIP 存档的根目录中。当扩展在 VM 上运行时,它会尝试在以下目录中找到 Main.ps1 文件:C:\Packages\Plugins\Microsoft.Powershell.DSC\2.71.1.0\bin..\DSCWork\DSC.1\Main .ps1 ,但是当我远程到机器时 Main.ps1 不在文件夹中,我收到以下错误:

{"code":"DeploymentFailed","message":"至少一项资源部署操作失败。请列出部署操作以了解详细信息。请参阅https://aka.ms/arm-debug不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。\n请更正输入并重试执行扩展。\\"。\"\r\n }\r\ n ]\r\n }\r\n}"}]}

请有人告诉我,我做错了什么?我按照方法,这是在github上提供的官方示例 ARM 模板中实现的。谢谢!

4

2 回答 2

1

根据我的评论,我遇到了同样的问题,请检查您的 DSC.zip 文件。我的 zip 文件是 /DSC/script.ps1。它应该是 /script.ps1

这就是为什么它找不到我的文件。

于 2017-10-25T16:01:06.023 回答
1

配置对象中的 url 属性必须是可在 Internet 上访问的 url。zip 文件下载到 VM 上的该位置并从那里运行。它在 VM 上的存储位置不是模板需要知道的,但它确实需要知道在 Internet 上的何处可以找到它。

这是一个示例,展示了如何使其端到端工作:https ://github.com/Azure/azure-quickstart-templates/blob/master/201-vm-win-iis-app-ssl/azuredeploy.json

(还有一些其他的)

于 2017-10-09T14:35:06.417 回答