Criar uma VM a partir de uma versão de imagem generalizada

Crie uma VM com base em uma versão de imagem generalizada armazenada em uma Galeria de Computação do Azure (anteriormente conhecida com Galeria de Imagens Compartilhadas). Se você quiser criar uma VM usando uma imagem especializada, confira Criar uma VM de uma imagem especializada.

Este artigo mostra como criar uma VM com base em uma imagem generalizada:

Liste as definições de imagem em uma galeria usando az sig image-definition list para ver o nome e a ID das definições.

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

Crie uma VM usando az vm create. Para usar a versão mais recente da imagem, defina --image como a ID da definição da imagem.

Este exemplo se destina à criação de uma VM do Linux protegida com o SSH. Para o Windows ou para proteger uma VM do Linux com uma senha, remova --generate-ssh-keys para que uma senha seja solicitada. Para fornecer uma senha diretamente, substitua --generate-ssh-keys por --admin-password. Substitua os nomes dos recursos conforme necessário no exemplo.

imgDef="/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition"
vmResourceGroup=myResourceGroup
location=eastus
vmName=myVM
adminUsername=azureuser

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

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

Você também pode usar uma versão específica utilizando a ID de versão da imagem para o parâmetro --image. Por exemplo, para usar a versão de imagem 1.0.0, digite: --image "/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition/versions/1.0.0".

RBAC – Compartilhada na sua organização

Se a assinatura em que a galeria se encontra estiver no mesmo locatário, as imagens compartilhadas por meio do RBAC poderão ser usadas para criar VMs com a CLI e o PowerShell.

Você precisará da imageID da imagem que deseja usar e verificar se ela foi replicada para a região em que deseja criar a VM.

Se certifique de que o estado da imagem é Generalized. Se você quiser usar uma imagem com o estado Specialized, veja Criar uma VM com base em uma versão de imagem especializada.

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

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

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

RBAC – Compartilhada de outro locatário

Se a imagem que você deseja usar estiver armazenada em uma galeria que não esteja no mesmo locatário (diretório), você precisará entrar em cada locatário para verificar se tem acesso.

Você também precisa da imageID da imagem que deseja usar e verificar se ela foi replicada para a região em que deseja criar a VM. Você também precisará da tenantID da galeria de origem e da tenantID do local em que deseja criar a VM.

Neste exemplo, estamos mostrando como criar uma VM com base em uma imagem generalizada. Se você estiver usando uma imagem especializada, confira Criar uma VM usando uma versão de imagem especializada.

Você precisa entrar no locatário em que a imagem está armazenada, obter um token de acesso e entrar no locatário em que deseja criar a VM. É assim que o Azure autentica que você tem acesso à imagem.


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 login --tenant $tenant1
az account get-access-token

Crie a VM. Substitua as informações no exemplo pelas suas próprias. Antes de criar a VM, verifique se a imagem foi replicada na região em que deseja criar a VM.

imageid="<ID of the image that you want to use>"
resourcegroup="<name for the resource group>"
location="<location where the image is replicated>"
user='<username for the VM>'
name='<name for the VM>'

az group create --location $location --resource-group $resourcegroup
az vm create \
  --resource-group $resourcegroup \
  --name $name \
  --image $imageid \
  --admin-username $user \
  --generate-ssh-keys

Importante

A Microsoft não dá suporte para imagens na galeria da comunidade.

Relatar problemas com uma imagem da comunidade

Há vários riscos no uso de imagens da máquina virtual enviadas pela comunidade. Imagens podem conter malware, vulnerabilidades de segurança ou violar a propriedade intelectual de alguém. Para ajudar a criar uma experiência segura e confiável para a comunidade, relate as imagens quando você vir esses problemas.

A maneira mais fácil de relatar problemas com uma galeria da comunidade é usar o portal, que preencherá previamente as informações do relatório:

  • Para problemas com links ou outras informações nos campos de uma definição de imagem, selecione Relatar imagem da comunidade.
  • Se uma versão de imagem contiver código mal-intencionado ou houver outros problemas com uma versão específica de uma imagem, selecione Relatar na coluna Relatar versão na tabela de versões de imagem.

Você também pode usar os links a seguir para relatar problemas, mas os formulários não serão preenchidos previamente:

Para criar uma máquina virtual usando uma imagem compartilhada com uma galeria da comunidade, use a ID exclusiva da imagem do --image que estará no seguinte formato:

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

Siga estas instruções para obter a lista de Imagens da comunidade usando a CLI:

Step 1:  Show all 'Community images' in a specific location
az sig list-community --location westus2

Step 2: Once you have the public gallery name from Step 1, Get the Image definition (Name) of the image by running the following command
az sig image-definition list-community --public-gallery-name <<public gallery name>> --location westus2

Step 3: Finally, run the following command to list different image versions available for the specific image
az sig image-version list-community --public-gallery-name <<galleryname>> --gallery-image-definition <<image name>> --location westus2

Para obter o nome público de uma galeria da comunidade no portal. Acesse Máquinas virtuais>Criar>Máquina virtual do Azure>Imagem>Ver todas as imagens>Imagens da Comunidade>Nome da galeria pública.

Neste exemplo, estamos criando uma máquina virtual de uma imagem Linux e criando chaves SSH para autenticação.

imgDef="/CommunityGalleries/ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f>/Images/myLinuxImage/Versions/latest"
vmResourceGroup=myResourceGroup
location=eastus
vmName=myVM
adminUsername=azureuser

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

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

Ao usar uma imagem da comunidade, você será solicitado a aceitar os termos legais. A mensagem se parece com a seguinte:

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): 

Importante

Galeria de Computação do Azure – as galerias compartilhadas diretas estão atualmente em VERSÃO PRÉVIA e sujeitas aos Termos de Versão Prévia da Galeria de Computação do Azure.

Para publicar imagens em uma galeria compartilhada direta durante a versão prévia, você precisará se registrar em https://aka.ms/directsharedgallery-preview. A criação de VMs com base em uma galeria compartilhada direta está aberta a todos os usuários do Azure.

Durante a versão prévia, você precisará criar uma galeria, com a propriedade sharingProfile.permissions definida como Groups. Ao usar a CLI para criar uma galeria, use o parâmetro --permissions groups. Você não pode usar uma galeria existente, a propriedade não pode ser atualizada no momento.

Para criar uma VM usando uma imagem compartilhada com sua assinatura ou locatário, você precisará da ID exclusiva da imagem no seguinte formato:

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

Para localizar a uniqueID de uma galeria compartilhada com você, use az sig list-shared. Neste exemplo, estamos procurando galerias na região Oeste dos EUA.

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

Use o nome da galeria para localizar as imagens disponíveis. Neste exemplo, listamos todas as imagens no Oeste dos EUA e, por nome, a ID exclusiva necessária para criar uma VM, um sistema operacional e um estado de sistema operacional.

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

Se certifique de que o estado da imagem é Generalized. Se você quiser usar uma imagem com o estado Specialized, veja Criar uma VM com base em uma versão de imagem especializada.

Use a Id da saída, acrescentada com /Versions/latest para usar a última versão, como o valor de --image para criar uma VM. Neste exemplo, estamos criando uma VM com base em uma imagem Linux diretamente compartilhada e criando chaves SSH para autenticação.

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

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

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

Próximas etapas