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


Создание виртуальной машины на основе специализированной версии образа

Область применения: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows

Вы можете создать виртуальную машину из специализированной версии образа, хранящейся в Коллекции вычислений Azure (ранее известная как Общая коллекция образов). Если вы хотите создать виртуальную машину на основе универсального образа, см. статью Создание виртуальной машины на основе универсального образа.

В этой статье показано, как создать виртуальную машину на основе специализированного образа:

Внимание

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

Создайте виртуальную машину из внутренней коллекции.

Укажите определения образов в коллекции, используя команду az sig image-definition list для просмотра имен и идентификаторов определений.

resourceGroup=myGalleryRG
gallery=myGallery
az sig image-definition list \
   --resource-group $resourceGroup \
   --gallery-name $gallery \
   --query "[].[name, id]" \
   --output tsv

Создайте виртуальную машину с помощью команды az vm create, добавив к ней параметр --specialized, чтобы указать, что образ является специализированным.

Используйте идентификатор определения образа в качестве значения параметра --image, чтобы создать виртуальную машину на основе последней доступной версии образа. Вы также можете создать виртуальную машину на основе определенной версии, указав идентификатор версии образа в параметре --image.

В нашем примере виртуальная машина создается на основе последней версии образа myImageDefinition.

az group create --name myResourceGroup --location eastus
az vm create --resource-group myResourceGroup \
    --name myVM \
    --image "/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition" \
    --specialized

RBAC — в организации

Если подписка, в которой находится коллекция, находится в одном клиенте, образы, общие образы с помощью RBAC можно использовать для создания виртуальных машин с помощью интерфейса командной строки и PowerShell.

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


image="/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition"
vmResourceGroup='myResourceGroup'
location='westus'
vmName='myVM'

az group create --name $vmResourceGroup --location $location

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $image \
   --specialized

RBAC — из другого клиента или организации

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

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

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

tenant1='<ID for tenant 1>'
tenant2='<ID for tenant 2>'

az account clear
az login --tenant $tenant1
az account get-access-token 
az login --tenant $tenant2
az account get-access-token

Создайте виртуальную машину с помощью команды az vm create, добавив к ней параметр --specialized, чтобы указать, что образ является специализированным.


imageid=""/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition""
resourcegroup="myResourceGroup"
location="West US 3"
name='myVM'

az group create --name $resourcegroup --location $location
az vm create --resource-group $resourcegroup \
    --name $name \
    --image $image \
    --specialized

Внимание

Корпорация Майкрософт не предоставляет поддержку образов из коллекции сообщества.

Создание отчетов о проблемах с изображением сообщества

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

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

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

Кроме того, можно использовать следующие ссылки на проблемы с отчетом, но формы не будут заполнены.

Чтобы создать виртуальную машину, используя образ, предоставленный для коллекции сообщества, используйте уникальный идентификатор образа для --image, который будет иметь следующий формат:

/CommunityGalleries/<community gallery name, like: ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f>/Images/<image name>/Versions/latest

Чтобы получить общедоступное имя коллекции сообщества, конечный пользователь должен использовать портал. Выберите Виртуальные машины>Создать>Виртуальная машина Azure>Образ>Просмотреть все образы>Образы сообщества>Имя общедоступной коллекции.

Чтобы отобразить список всех определений образов, доступных в коллекции сообщества, выполните команду az sig image-definition list-community. В этом примере мы отобразим список всех образов в коллекции ContosoImage в западной части США, а также по имени, уникальный идентификатор, необходимый для создания виртуальной машины, операционную систему и состояние ОС.

 az sig image-definition list-community \
   --public-gallery-name "ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f" \
   --location westus \
   --query [*]."{Name:name,ID:uniqueId,OS:osType,State:osState}" -o table

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

Создайте виртуальную машину с помощью команды az vm create, добавив к ней параметр --specialized, чтобы указать, что образ является специализированным.

В нашем примере виртуальная машина создается на основе последней версии образа myImageDefinition.

az group create --name myResourceGroup --location eastus
az vm create --resource-group myResourceGroup \
    --name myVM \
    --image "/CommunityGalleries/ContosoImages-f61bb1d9-3c5a-4ad2-99b5-744030225de6/Images/LinuxSpecializedVersions/latest" \
    --specialized

При использовании образа сообщества вам необходимо будет принять юридические условия. Сообщение будет выглядеть следующим образом:

To create the VM from community gallery image, you must accept the license agreement and privacy statement: http://contoso.com. (If you want to accept the legal terms by default, please use the option '--accept-term' when creating VM/VMSS) (Y/n): 

Внимание

Коллекция вычислений Azure — это общая коллекция, которая в настоящее время работает в режиме предварительной версии и распространяется на условиях предварительной версии коллекции вычислений Azure.

Чтобы опубликовать образы в коллекции, к которой предоставлен прямой доступ, на этапе предварительной версии, необходимо зарегистрироваться на странице https://aka.ms/directsharedgallery-preview. Создавать виртуальные машины из коллекции, к которой предоставлен прямой доступ, могут все пользователи Azure.

На этапе предварительной версии необходимо создать коллекцию со свойством sharingProfile.permissions со значением Groups. При использовании CLI для создания коллекции воспользуйтесь параметром --permissions groups. Существующую коллекцию использовать нельзя; в настоящее время свойство обновить нельзя.

Чтобы создать виртуальную машину, используя последнюю версию образа, доступ к которому предоставлен подписке или арендатору, вам потребуется идентификатор образа в следующем формате:

/SharedGalleries/<uniqueID>/Images/<image name>/Versions/latest

Чтобы найти uniqueID коллекции, к которой вам предоставлен общий доступ, используйте az sig list-shared. В этом примере выполняется поиск коллекций в регионе "Западная часть США".

region=westus
az sig list-shared --location $region --query "[].name" -o tsv

Используйте имя коллекции, чтобы найти все доступные образы. В этом примере мы отобразим список всех образов в западной части США, а также по имени, уникальный идентификатор, необходимый для создания виртуальной машины, операционную систему и состояние ОС.

galleryName="1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-myDirectShared"
 az sig image-definition list-shared \
   --gallery-unique-name $galleryName \
   --location $region \
   --query [*]."{Name:name,ID:uniqueId,OS:osType,State:osState}" -o table

Убедитесь, что состояние образа — Specialized. Если необходимо использовать образ с состоянием Generalized, см. статью Создание виртуальной машины на основе универсального образа.

Создайте виртуальную машину с помощью команды az vm create, добавив к ней параметр --specialized, чтобы указать, что образ является специализированным.

Используйте параметр Id с добавлением /Versions/latest, чтобы использовать последнюю версию, в качестве значения для "--image" для создания виртуальной машины.

В нашем примере виртуальная машина создается на основе последней версии образа myImageDefinition.

imgDef="/SharedGalleries/1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-MYDIRECTSHARED/Images/myDirectDefinition/Versions/latest"
vmResourceGroup=myResourceGroup
location=westus
vmName=myVM

az group create --name $vmResourceGroup --location $location

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --specialized

Следующие шаги