首页 文章

Azure ARM DSC扩展集部署 - 无法定位脚本

提问于
浏览
0

我正在尝试使用ARM模板和所需状态配置(DSC)将虚拟机规模集部署到Azure . 我已经创建了DSC configuraiton并在一个单独的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的Configratuion确实存在 . 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的使用细节","细节":[{"代码":"冲突","消息":" {\ r \ n \ "status": . \ "Failed", \ r \ n \ "error":{\ r \ n \ "code":\ "ResourceDeploymentFailure",\ r \ n \ "message":\ "The resource operation completed with terminal provisioning state 'Failed'.",\ r \ n \ "details":\ r \ N {\ r \ n \ "code":\ "VMExtensionProvisioningError" ,\ r \ n \ "message":\ "VM has reported a failure when processing extension 'Microsoft.Powershell.DSC'. Error message: \"的DSC扩展接收到不正确的输入:在执行脚本或模块'Main.ps1'发生错误:术语'C:\Packages\Plugins\Microsoft.Powershell.DSC\2.71.1.0\bin\..\DSCWork\DSC.1\Main.ps1'未被识别为cmdlet,函数,脚本文件,或可运行的程序的名称 . 检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试.. \ n请更正输入并重试执行扩展 . \ "." \ r \ n} \ r \ n] \ r \ n} \ r \ n}“}}}

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

2 回答

  • 1

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

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

  • 1

    配置对象中的url属性需要是可在Internet上访问的URL . zip文件将下载到VM上的该位置并从那里运行 . 它存储在VM上的位置不是模板需要知道的,但它确实需要知道在互联网上找到它的位置 .

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

    (还有其他一些)

相关问题