2016-04-05 1 views
1

Я ищу копию файла из моей учетной записи хранилища для виртуальной машины, создаваемой с использованием шаблона ARM?Скопируйте файл из хранилища с использованием шаблона управления ресурсами Azure?

Я уже создал учетную запись хранения и добавил файлы на учетную запись хранилища. Я занимаюсь созданием шаблона, но не вижу возможности копировать файлы из учетной записи хранилища в OSDisk, который создается при создании VirtualMachine.

Update Я чувствую, что я должен дать некоторую предысторию, что я хочу добиться:

  1. Я хочу создать ARM deploy.json и parameters.json
  2. Использование выше JSON Я хотел бы использовать Azure Java SDK для создания виртуальной машины в Azure
  3. В JSON я буду использовать расширение докера для построения контейнеров докеров
  4. В контейнерах докеров используются базовые изображения из DockerHub a nd затем будет настроен с использованием компоновки, которая поддерживается в DockerExtension
  5. Мне нужно скопировать определенные файлы из учетной записи хранилища, чтобы расширение Docker Extension могло использовать эти файлы в составе сборщика докеров при создании пользовательских контейнеров докеров
  6. Java-SDK будет принимать определенные решения на основе пользовательского ввода, которые затем генерируют parameters.json для Azure Java SDK

Так на основе этого мне нужно как-то скопировать файлы из хранилища в VM до выполняется лазурное расширение докеров.

+0

Можете ли вы прояснить это для меня. Итак, вы хотите извлечь файл из хранилища до развертывания виртуальной машины, чтобы он мог создать файл параметров для самого развертывания? –

+0

Может попытаться использовать API ['Создать связь между ресурсами'] (https://msdn.microsoft.com/en-us/library/mt238500.aspx), чтобы связать ресурс хранилища с VM, например, как установить расширенный диск в файловую систему на VM ? –

+0

Я протестировал ответ ниже, но обнаружил, что просто изменение способа создания контейнеров для докеров - это более чистое решение в конце. – aorticDefiance

ответ

1

Если вы хотите сделать это с помощью DSC, вот пример: https://github.com/bmoore-msft/AzureRM-Samples/tree/master/VMDSCInstallFile. Однако ответ Эд может быть более простым. Ключевым моментом здесь является получение учетных данных для виртуальной машины, чтобы иметь возможность извлекать данные из хранилища. Это означает, что вы используете DSC или собственный скрипт, вам нужно получить местоположение/uri и sasToken для скрипта (если файлы не являются необеспеченными). Пример DSC выше даст вам способ передать uri/токен, который будет работать в любом рабочем процессе. Посмотрите сценарий PS в корневом каталоге, чтобы узнать, как маркер uri & создан и передан в развертывание шаблона.

+0

Вот пример использования пользовательского сценария для извлечения из хранилища uri - этот подход не требует, чтобы в vm были установлены командлеты Azure. https://github.com/bmoore-msft/AzureRM-Samples/tree/master/VMCSEInstallFile –

3

Одним из способов достижения этого было бы использовать расширение пользовательского сценария, которое добавляется к вашей виртуальной машине. Он позволяет запускать сценарий powershell во время развертывания, который выполняется на виртуальной машине. В окне контурной JSON в Visual Studio, нажмите кнопку Добавить ресурс

add resource

Затем добавить расширение пользовательского сценария и связать его с VM

add a custom script extension

Это добавит пустой Powershell скрипт для недавно созданной пользовательской папке сценария в вашем проекте. Здесь вы можете поместить скрипт для загрузки файла из blob. Как this.