Поделиться через


Настройка коллекции общих образов в Azure DevTest Labs

DevTest Labs поддерживает хранение и совместное использование образов в коллекции вычислений Azure. Общая коллекция образов упрощает обслуживание большого количества управляемых образов и делает их широко доступными. Это также отличный способ предоставить стандартизированные образы с текущим программным обеспечением для пользователей. Поддерживаются специализированные и обобщенные изображения. Используя общую коллекцию образов, вы можете создавать структуру и организацию вокруг образов виртуальных машин, управляемых пользовательскими пользователями.

В этой статье описывается, как подключить общую коллекцию образов к лаборатории. Пользователи могут получить доступ к изображениям из общего расположения при создании виртуальных машин лаборатории. Ключевым преимуществом этого подхода является то, что DevTest Labs позволяет совместно использовать образы виртуальных машин в лабораториях, между подписками и в разных регионах.

Изучение общих коллекций образов

Ниже приведены некоторые преимущества использования общей коллекции образов с DevTest Labs:

  • Управление глобальной репликацией образов
  • Применение управления версиями и группирование изображений для упрощения управления
  • Доступ к высокодоступным образам с помощью учетных записей хранилища с избыточностью между зонами (ZRS) в регионах, поддерживающих зоны доступности для повышения устойчивости к зональным сбоям
  • Совместное использование образов между подписками и между клиентами с помощью управления доступом на основе ролей (RBAC)

Помните, что при работе с общей коллекцией следует учитывать следующие рекомендации.

  • Вы можете вложить только одну общую коллекцию образов в лабораторию одновременно. Чтобы подключить другую коллекцию, необходимо сначала отсоединить текущую коллекцию.
  • Изображения можно выбрать только из подключенной коллекции с помощью DevTest Labs. Вы не можете отправлять изображения или изменять их в коллекции с помощью DevTest Labs.
  • При создании виртуальной машины из общего образа DevTest Labs использует последнюю опубликованную версию образа в подключенной коллекции. Если образ имеет несколько версий, можно выбрать более раннюю версию в разделе "Дополнительные параметры " во время создания виртуальной машины.
  • DevTest Labs пытается реплицировать все образы в подключенной коллекции в регион лаборатории. Иногда репликация невозможна. Чтобы избежать проблем при создании виртуальных машин из образов, убедитесь, что образы в подключенной коллекции полностью реплицируются в регион лаборатории.

Сведения о затратах, связанных с использованием общей коллекции образов, см. в статье "Выставление счетов для коллекции вычислений Azure".

Выполните следующие действия, чтобы подключить общую коллекцию образов к ресурсу DevTest Labs:

  1. В портал Azure перейдите к ресурсу DevTest Labs, где требуется присоединить общую коллекцию образов.

  2. На странице обзора лаборатории разверните раздел "Параметры" в меню слева и выберите "Конфигурация" и "Политики".

  3. На экране "Конфигурация и политики" разверните раздел "Базы виртуальных машин" в меню слева и выберите "Общие коллекции образов":

    Снимок экрана: выбор параметра

  4. Выберите "Присоединить ", чтобы добавить в лабораторию существующую общую коллекцию образов.

  5. В раскрывающемся списке "Присоединение существующей коллекции" выберите общую коллекцию образов, чтобы добавить в лабораторию, а затем нажмите кнопку "ОК".

    Снимок экрана: подключение общей коллекции образов к лаборатории.

  6. После подключения коллекции DevTest Labs к лаборатории можно выбрать имя коллекции, чтобы просмотреть полный список изображений:

    Снимок экрана, на котором показано, как просмотреть список всех изображений в подключенной общей коллекции для лаборатории.

    Откроется страница общих образов :

    Снимок экрана: список изображений в общей коллекции с индикаторами флажка, чтобы отобразить изображения, разрешенные для создания виртуальной машины.

Управление доступными изображениями

Параметр "Разрешить использование всех образов в качестве баз виртуальных машин" позволяет контролировать, какие образы доступны пользователям лаборатории при создании виртуальных машин лаборатории. По умолчанию этот параметр имеет значение "Да", а пользователи лаборатории имеют доступ ко всем изображениям в подключенной коллекции.

Выполните следующие действия, чтобы ограничить доступ к изображениям в коллекции:

  1. На странице "Конфигурация и политики" для лаборатории перейдите на экран общих коллекций образов виртуальных> машин.

  2. Выберите имя присоединенной коллекции, чтобы открыть страницу "Общие образы ", в которой отображается список изображений.

  3. На странице общих образов задайте для параметра "Разрешить использование всех образов в качестве баз виртуальных машин" значение "Нет".

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

  5. Выберите Сохранить.

После присоединения общей коллекции образов к лаборатории пользователи лаборатории могут выбрать из разрешенных образов при создании новой виртуальной машины:

  1. На странице "Конфигурация и политики" для лаборатории перейдите на экран общих коллекций образов виртуальных> машин.

  2. Выберите имя присоединенной коллекции, чтобы открыть страницу "Общие образы ", в которой отображается список изображений.

  3. Запишите имя образа коллекции, который вы хотите использовать для создания новой виртуальной машины.

  4. Вернитесь на страницу обзора лаборатории и нажмите кнопку "Добавить".

  5. На базовой странице выберите образ коллекции, который вы хотите использовать для создания новой виртуальной машины. В списке изображений разрешенные образы из подключенной общей коллекции образов следуют изображениям, доступным из шаблонов Azure Resource Manager (ARM):

    Снимок экрана: список доступных образов для экземпляра виртуальной машины, включая разрешенные образы из подключенной общей коллекции образов.

Выполните действия, чтобы создать виртуальную машину из выбранного образа.

Лаборатория может одновременно содержать только одну подключенную общую коллекцию образов. Если в лаборатории есть присоединенная коллекция, и вы хотите использовать другую коллекцию, необходимо сначала отключить существующую коллекцию. После отключения существующей коллекции можно подключить другую коллекцию.

  1. На странице "Конфигурация и политики" для лаборатории перейдите на экран общих коллекций образов виртуальных> машин.

  2. Выберите дополнительные параметры (...) для подключенной коллекции и выберите "Отсоединить":

    Снимок экрана, на котором показано, как отключить текущую общую коллекцию образов из лаборатории.

Параметр "Отключить " также доступен на странице "Общие образы " для подключенной коллекции.

Шаблон ARM можно использовать для подключения общей коллекции образов к лаборатории. Необходимо добавить коллекцию в качестве ресурса для шаблона ARM, как показано в следующем примере:

"resources": [
{
    "apiVersion": "2018-10-15-preview",
    "type": "Microsoft.DevTestLab/labs",
    "name": "mylab",
    "location": "eastus",
    "resources": [
    {
        "apiVersion":"2018-10-15-preview",
        "name":"myGallery",
        "type":"sharedGalleries",
        "properties": {
            "galleryId":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mySharedGalleryRg/providers/Microsoft.Compute/galleries/mySharedGallery",
            "allowAllImages": "Enabled"
        }
    }
    ]
}

Репозиторий GitHub DevTest Labs предоставляет полные примеры, использующие шаблоны ARM для присоединения общих коллекций образов. Чтобы приступить к работе, можно настроить общую коллекцию образов при создании новой лаборатории.

Использование REST API

В следующих разделах приведены примеры использования REST API для работы с изображениями из общей коллекции образов.

Получение списка лабораторий

Следующий вызов GET возвращает список ресурсов DevTest Labs для подписки. В этом примере приведены следующие параметры:

  • subscriptionId: идентификатор подписки, для которого нужно вернуть список ресурсов DevTest Labs.
  • resourceGroupName: имя группы ресурсов для поиска ресурсов DevTest Labs.
GET  https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs?api-version= 2018-10-15-preview

Получение списка общих коллекций образов для лаборатории

Следующий вызов GET возвращает список общих коллекций образов, связанных с лабораторией. В этом примере приведены следующие параметры:

  • subscriptionId: идентификатор подписки для ресурса DevTest Labs.
  • resourceGroupName: имя группы ресурсов для ресурса DevTest Labs.
  • labName: имя ресурса DevTest Labs, для которого необходимо вернуть список связанных общих коллекций образов.
GET  https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/sharedgalleries?api-version= 2018-10-15-preview

Следующий вызов PUT создает или обновляет общую коллекцию образов для указанной лаборатории. В этом примере приведены следующие параметры:

  • subscriptionId: идентификатор подписки для ресурса DevTest Labs.
  • resourceGroupName: имя группы ресурсов для ресурса DevTest Labs.
  • labName: имя ресурса DevTest Labs.
  • name: имя общей коллекции для создания или обновления для лаборатории.
  • galleryId: идентификатор общей коллекции для создания или обновления для лаборатории.
  • allowAllImages: установите для Enabled разрешения использования всех образов в коллекции с ресурсом лаборатории.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/sharedgalleries/{name}?api-version=2018-10-15-preview
Body: 
{
    "properties":{
        "galleryId": "[Shared Image Gallery resource Id]",
        "allowAllImages": "Enabled"
    }
}

Следующий вызов GET возвращает список изображений в указанной общей коллекции образов для лаборатории. В этом примере приведены следующие параметры:

  • subscriptionId: идентификатор подписки для ресурса DevTest Labs.
  • resourceGroupName: имя группы ресурсов для ресурса DevTest Labs.
  • labName: имя ресурса DevTest Labs.
  • name: имя общей коллекции, связанной с лабораторией, для которой требуется перечислить изображения.
GET  https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/sharedgalleries/{name}/sharedimages?api-version=2018-10-15-preview