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

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

Este artigo mostra como criar uma VM a partir de uma imagem generalizada:

Liste as definições de imagem em uma galeria usando az sig image-definition list para ver o nome e o 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 com az vm create. Para usar a versão mais recente da imagem, defina --image como o ID da definição da imagem.

Este exemplo é para criar uma VM Linux protegida com SSH. Para Windows ou para proteger uma VM Linux com uma senha, remova --generate-ssh-keys para ser solicitada uma senha. Se você quiser fornecer uma senha diretamente, substitua --generate-ssh-keys por --admin-password. Substitua nomes de recursos conforme necessário neste 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 usando o ID da versão da imagem para o --image parâmetro. Por exemplo, para usar a imagem versão 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 - Compartilhado dentro da sua organização

Se a assinatura onde a galeria reside estiver dentro do mesmo locatário, as imagens compartilhadas por meio do RBAC poderão ser usadas para criar VMs usando a CLI e o PowerShell.

Você precisará imageID da imagem que deseja usar e garantir que ela seja replicada para a região onde deseja criar a VM.

Certifique-se de que o estado da imagem é Generalized. Se você quiser usar uma imagem com o Specialized estado, consulte Criar uma VM a partir de 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 - Compartilhado de outro locatário

Se a imagem que pretende utilizar estiver armazenada numa galeria que não esteja no mesmo inquilino (diretório), terá de iniciar sessão em cada inquilino para verificar se tem acesso.

Você também precisa imageID da imagem que deseja usar e precisa garantir que ela seja replicada para a região onde deseja criar a VM. Você também precisará do tenantID para a galeria de origem e para onde tenantID deseja criar a VM.

Neste exemplo, mostramos como criar uma VM a partir de uma imagem generalizada. Se você estiver usando uma imagem especializada, consulte Criar uma VM usando uma versão de imagem especializada.

Tem de iniciar sessão no inquilino onde a imagem está armazenada, obter um token de acesso e, em seguida, iniciar sessão no inquilino onde pretende 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 do exemplo pelas suas. Antes de criar a VM, certifique-se de que a imagem é replicada na região onde você 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 fornece suporte para imagens na galeria da comunidade.

Comunicar problemas com uma imagem da comunidade

O uso de imagens de máquina virtual enviadas pela comunidade tem vários riscos. As 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, você pode relatar imagens quando 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 Denunciar 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 Relatório na coluna Versão do relatório 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 pré-preenchidos:

Para criar uma VM usando uma imagem compartilhada em uma galeria da comunidade, use a ID exclusiva da imagem para a --image qual 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. Ir para Máquinas>virtuais Criar>imagem>de máquina>virtual do Azure Ver todas as imagens>Imagens da>comunidade Nome da galeria pública.

Neste exemplo, estamos criando uma VM a partir de uma imagem do 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 tem esta aparência:

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 – a galeria compartilhada direta está atualmente em VISUALIZAÇÃO e sujeita aos Termos de Visualização da Galeria de Computação do Azure.

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

Durante a visualização, você precisa criar uma nova galeria, com a propriedade sharingProfile.permissions definida como Groups. Ao usar a CLI para criar uma galeria, use o --permissions groups parâmetro. 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ê precisa da ID exclusiva da imagem no seguinte formato:

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

Para encontrar a uniqueID 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 encontrar as imagens disponíveis. Neste exemplo, listamos todas as imagens no oeste dos EUA e, por nome, a ID exclusiva necessária para criar um estado de VM, SO e SO.

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

Certifique-se de que o estado da imagem é Generalized. Se você quiser usar uma imagem com o Specialized estado, consulte Criar uma VM a partir de uma versão de imagem especializada.

Use o Id from the output, anexado com /Versions/latest para usar a versão mais recente, como o valor para --image criar uma VM. Neste exemplo, estamos criando uma VM a partir de uma imagem do Linux que é compartilhada diretamente conosco 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óximos passos