Развертывание масштабируемого набора Azure ARM DSC - не удается найти сценарий

Я пытаюсь развернуть масштабируемый набор виртуальных машин в Azure с помощью шаблона ARM и конфигурации желаемого состояния (DSC). Я создал конфигурацию DSC и проверил ее на отдельной виртуальной машине, что она работает. В шаблоне 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-архива. Когда расширение работает на виртуальной машине, оно пытается найти файл 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 для получения подробной информации об использовании. "," details ": [{" code ":" Conflict "," message ":" {\ r \ n \ "status \": \ "Failed \", \ r \ n \ "error \": {\ r \ n \ "code \": \ "ResourceDeploymentFailure \", \ r \ n \ "message \": \ "Операция с ресурсом завершена с состоянием инициализации терминала" Сбой ". \", \ R \ n \ "подробности \": [\ r \ n {\ r \ n \ "код \": \ "VMExtensionProvisioningError \", \ r \ n \ "message \": \ "ВМ сообщила об ошибке при обработке расширения 'Microsoft.Powershell.DSC'. Сообщение об ошибке: \\ "Расширение DSC получило неверный ввод: Произошла ошибка при выполнении скрипта или модуля 'Main.ps1': термин 'C: \\ Packages \\ Plugins \\ Microsoft.Powershell.DSC \\ 2.71. 1.0 \\ bin \\ .. \\ DSCWork \\ DSC.1 \\ Main.ps1 'не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте написание имени или путь был включен, убедитесь, что путь правильный, и попробуйте еще раз .. \ nПожалуйста, исправьте ввод и повторите попытку выполнения расширения. \\ ". \" \ r \ n} \ r \ n] \ r \ n} \ r \ n} "}]}

Подскажите, пожалуйста, что я делаю не так? Я пошел по пути, это реализовано в официальных образцах шаблонов ARM, доступных на github. Спасибо!


person marek_lani    schedule 07.10.2017    source источник
comment
это то место, где он должен быть, поэтому войдите в виртуальную машину после сбоя расширения и убедитесь, что файл там C:\Packages\Plugins\Microsoft.Powershell.DSC\2.71.1.0\DSCWork\DSC.1\Main.ps1. в противном случае что-то не так с вашим архивом dsc   -  person 4c74356b41    schedule 07.10.2017
comment
Я проверил это, и его там нет. Редактировал и свой вопрос. Архив содержит только файл Main.ps1 и дополнительные модули, которые я использую в конфигурации. Архив загружается в общедоступный контейнер больших двоичных объектов. Пожалуйста, знаете, где я мог ошибиться при создании архива? Спасибо.   -  person marek_lani    schedule 07.10.2017
comment
@marek_lani ты это решил? Я получаю ту же ошибку, я просмотрел журналы, и, похоже, мой скрипт был помещен сюда C: \ Program Files \ WindowsPowerShell \ Modules \ DSC в журнале, который, похоже, пытается запустить его из. Произошла ошибка при выполнении скрипт или модуль 'script.ps1': термин 'C: \ Packages \ Plugins \ Microsoft.Powershell.DSC \ 2.71.1.0 \ bin \ .. \ DSCWork \ DSC.0 \ script.ps1' не распознается как имя командлета, функции, файла сценария или работающей программы.   -  person Boomerang    schedule 25.10.2017


Ответы (2)


Согласно моему комментарию, у меня возникла та же проблема, проверьте ваш файл DSC.zip. Мой zip-файл был /DSC/script.ps1. Это должно быть /script.ps1

Вот почему он не смог найти мне файл.

person Boomerang    schedule 25.10.2017
comment
Была именно моя проблема - структура папок. Он должен быть помещен в корневую папку архива. - person marek_lani; 26.10.2017

Свойство url в объекте конфигурации должно быть URL-адресом, доступным в Интернете. ZIP-файл загружается в это место на виртуальной машине и запускается оттуда. Шаблон не должен знать, где он хранится на виртуальной машине, но ему нужно знать, где его найти в Интернете.

Вот пример, который показывает, как заставить его работать непрерывно: https://github.com/Azure/azure-quickstart-templates/blob/master/201-vm-win-iis-app-ssl/azuredeploy.json

(есть еще несколько)

person bmoore-msft    schedule 09.10.2017