Quando você criar uma nova VM a partir de uma imagem especializada, a nova VM retém o nome do computador da VM original. Outras informações específicas do computador, como o CMID, também são mantidas. Essas informações duplicadas podem causar problemas. Ao copiar uma VM, esteja ciente de quais tipos de informações específicas do computador seus aplicativos dependem.
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 a VM usando az vm create e o parâmetro --specialized para indicar que se trata de uma imagem especializada.
Use a ID de definição de imagem de --image para criar a VM com base na versão mais recente da imagem que está disponível. Você também pode criar a VM com base em uma versão específica fornecendo a ID de versão da imagem de --image.
Neste exemplo, estamos criando uma VM com base na versão mais recente da imagem 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
Após obter uma versão de imagem especializada, você pode criar uma ou mais VMs novas usando o cmdlet New-AzVM.
Neste exemplo, estamos usando a ID de definição de imagem para garantir que a nova VM use a versão mais recente de uma imagem. Você também pode usar uma versão específica usando a ID de versão da imagem para Set-AzVMSourceImage -Id. Por exemplo, para usar a versão de imagem 1.0.0, digite: Set-AzVMSourceImage -Id "/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition/versions/1.0.0".
O uso de uma versão de imagem específica significa que a automação poderá falhar se essa versão de imagem específica não estiver disponível porque foi excluída ou removida da região. É recomendável usar a ID de definição de imagem para criar a nova VM, a menos que uma versão de imagem específica seja necessária.
Substitua os nomes dos recursos conforme necessário no exemplo.
# Create some variables for the new VM.
$resourceGroup = "mySIGSpecializedRG"
$location = "South Central US"
$vmName = "mySpecializedVM"
# Get the image. Replace the name of your resource group, gallery, and image definition. This will create the VM from the latest image version available.
$imageDefinition = Get-AzGalleryImageDefinition `
-GalleryName myGallery `
-ResourceGroupName myResourceGroup `
-Name myImageDefinition
# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location
# Create the network resources.
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name mySubnet `
-AddressPrefix 192.168.1.0/24
$vnet = New-AzVirtualNetwork `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name MYvNET `
-AddressPrefix 192.168.0.0/16 `
-Subnet $subnetConfig
$pip = New-AzPublicIpAddress `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name "mypublicdns$(Get-Random)" `
-AllocationMethod Static `
-IdleTimeoutInMinutes 4
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig `
-Name myNetworkSecurityGroupRuleRDP `
-Protocol Tcp `
-Direction Inbound `
-Priority 1000 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Deny
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name myNetworkSecurityGroup `
-SecurityRules $nsgRuleRDP
$nic = New-AzNetworkInterface `
-Name $vmName `
-ResourceGroupName $resourceGroup `
-Location $location `
-SubnetId $vnet.Subnets[0].Id `
-PublicIpAddressId $pip.Id `
-NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration using Set-AzVMSourceImage -Id $imageDefinition.Id to use the latest available image version.
$vmConfig = New-AzVMConfig `
-VMName $vmName `
-VMSize Standard_D1_v2 | `
Set-AzVMSourceImage -Id $imageDefinition.Id | `
Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine
New-AzVM `
-ResourceGroupName $resourceGroup `
-Location $location `
-VM $vmConfig
Agora você pode criar uma ou mais VMs novas. Este exemplo cria uma VM chamada myVM no myResourceGroup no datacenter do Leste dos EUA.
Vá para a definição de imagem. Você pode usar o filtro de recurso para mostrar todas as definições de imagem disponíveis.
Na página da definição de imagem, selecione Criar VM no menu na parte superior da página.
Para Grupo de recursos, selecione Criar novo e digite myResourceGroup no nome.
Em Nome da máquina virtual, digite myVM.
Em Região, selecione Leste dos EUA.
Para Opções de disponibilidade, deixe o padrão de Nenhuma redundância de infraestrutura necessária.
O valor da Imagem será preenchido automaticamente com a latest versão da imagem se você tiver iniciado na página para a definição da imagem.
Para Tamanho, escolha um tamanho de VM na lista de tamanhos disponíveis e escolha Selecionar.
Em Conta do administrador, o nome de usuário fica esmaecido porque o nome de usuário e as credenciais da VM de origem são usados.
Para permitir o acesso remoto à VM, em Portas de entrada públicas, escolha Permitir portas selecionadas e selecione SSH (22) ou RDP (3389) na lista suspensa. Se você não quiser permitir o acesso remoto à VM, deixe o campo Nenhum selecionado em Portas de entrada públicas.
Quando tiver terminado, selecione o botão Revisar + criar na parte inferior da página.
Depois que a VM passar na validação, selecione Criar na parte inferior da página para iniciar a implantação.
RBAC – 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 na região em que deseja criar a VM.
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ê precisará da imageID da imagem que deseja usar e verificar se ela foi replicada na 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.
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
Crie a VM usando az vm create e o parâmetro --specialized para indicar que se trata de uma imagem especializada.
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
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.
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.
# Create some variables for the new VM.
$resourceGroup = "myResourceGroup"
$location = "South Central US"
$vmName = "myVM"
# Set a variable for the image version in Tenant 1 using the full image ID of the image version
$image = "/subscriptions/<Tenant 1 subscription>/resourceGroups/<Resource group>/providers/Microsoft.Compute/galleries/<Gallery>/images/<Image definition>/versions/<version>"
# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location
# Create the network resources.
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name mySubnet `
-AddressPrefix 192.168.1.0/24
$vnet = New-AzVirtualNetwork `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name MYvNET `
-AddressPrefix 192.168.0.0/16 `
-Subnet $subnetConfig
$pip = New-AzPublicIpAddress `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name "mypublicdns$(Get-Random)" `
-AllocationMethod Static `
-IdleTimeoutInMinutes 4
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig `
-Name myNetworkSecurityGroupRuleRDP `
-Protocol Tcp `
-Direction Inbound `
-Priority 1000 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Deny
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name myNetworkSecurityGroup `
-SecurityRules $nsgRuleRDP
$nic = New-AzNetworkInterface `
-Name $vmName `
-ResourceGroupName $resourceGroup `
-Location $location `
-SubnetId $vnet.Subnets[0].Id `
-PublicIpAddressId $pip.Id `
-NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration using Set-AzVMSourceImage -Id $imageDefinition.Id to use the latest available image version.
$vmConfig = New-AzVMConfig `
-VMName $vmName `
-VMSize Standard_D1_v2 | `
Set-AzVMSourceImage -Id $image | `
Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine
New-AzVM `
-ResourceGroupName $resourceGroup `
-Location $location `
-VM $vmConfig
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:
Como usuário final, para obter o nome público de uma galeria da comunidade, você precisa usar o portal. Acesse Máquinas virtuais>Criar>Máquina virtual do Azure>Imagem>Ver todas as imagens>Imagens da Comunidade>Nome da galeria pública.
Listar todas as definições de imagem disponíveis em uma galeria da comunidade usando az sig image-definition list-community. Neste exemplo, listamos todas as imagens na galeria ContosoImage 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.
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
Crie a VM usando az vm create e o parâmetro --specialized para indicar que se trata de uma imagem especializada.
Neste exemplo, estamos criando uma VM com base na versão mais recente da imagem 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
Ao usar uma imagem da comunidade, você será solicitado a aceitar os termos legais. A mensagem terá 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):
Digite máquinas virtuais na pesquisa.
Em Serviços, selecione Máquinas virtuais.
Na página Máquinas virtuais, clique em Criar, e em seguida, selecione Máquina virtual. A página Criar uma máquina virtual é aberta.
Na guia Básico, em Detalhes do projeto, verifique se a assinatura correta está selecionada e escolha Criar grupo de recursos ou selecione um da lista suspensa.
Em Detalhes da instância, digite um nome para o campo nome da máquina virtual.
Para o tipo de segurança, verifique se o Padrão está selecionado.
Para sua imagem, selecione Ver todas as imagens. A página Selecionar uma imagem será aberta.
No menu à esquerda, em Outros itens, selecione Imagens da comunidade. A página Outros Itens | Imagens da Comunidade será aberta.
Selecione uma imagem na lista. Verifique se o Estado do sistema operacional é Especializado. Se você quiser criar usar uma imagem especializada, confira Criar uma VM usando uma versão de imagem generalizada. Dependendo da escolha da imagem, a região na qual a máquina virtual será criada será alterada para corresponder à imagem.
Conclua o restante das opções e selecione o botão Examinar + criar na parte inferior da página.
Na página Criar uma máquina virtual, você pode ver os detalhes sobre a VM que você está prestes a criar. Quando estiver pronto, selecione Criar.
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 a versão mais recente de uma imagem compartilhada com sua assinatura ou locatário, você precisará da ID da imagem no seguinte formato:
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 todas 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
Crie a VM usando az vm create e o parâmetro --specialized para indicar que se trata de uma imagem especializada.
Use Id, acrescentado de /Versions/latest para usar a versão mais recente, como o valor de `--image`` para criar uma VM.
Neste exemplo, estamos criando uma VM com base na versão mais recente da imagem 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
Observação
Problema conhecido: no portal do Azure, se você selecionar uma região, selecionar uma imagem e alterar a região, você receberá uma mensagem de erro: "Você só pode criar VM nas regiões de replicação dessa imagem" mesmo quando a imagem for replicada para essa região. Para se livrar do erro, selecione uma região diferente e, em seguida, volte para a região desejada. Se a imagem estiver disponível, ela deverá limpar a mensagem de erro.
Você também pode usar a CLI do Azure para verificar quais imagens são compartilhadas com você. Por exemplo, você pode usar "az sig list-shared --location westus" para ver quais imagens são compartilhadas com você na região Oeste dos EUA.
Digite máquinas virtuais na pesquisa.
Em Serviços, selecione Máquinas virtuais.
Na página Máquinas virtuais, clique em Criar, e em seguida, selecione Máquina virtual. A página Criar uma máquina virtual é aberta.
Na guia Básico, em Detalhes do projeto, verifique se a assinatura correta está selecionada e escolha Criar grupo de recursos ou selecione um da lista suspensa.
Em Detalhes da instância, digite um nome para o campo nome da máquina virtual.
Para o tipo de segurança, verifique se o Padrão está selecionado.
Para sua imagem, selecione Ver todas as imagens. A página Selecionar uma imagem será aberta.
No menu à esquerda, em Outros Itens, selecione Imagens Compartilhadas Diretas (VERSÃO PRÉVIA). A página Outros itens | Imagens Compartilhadas Diretas (VERSÃO PRÉVIA) será aberta.
Selecione uma imagem na lista. Verifique se o Estado do sistema operacional é Especializado. Se você quiser usar uma imagem generalizada, consulte Criar uma VM usando uma versão de imagem generalizada. Dependendo da imagem escolhida, a Região na qual a VM será criada será alterada para corresponder à imagem.
Conclua o restante das opções e selecione o botão Examinar + criar na parte inferior da página.
Na página Criar uma máquina virtual, você pode ver os detalhes sobre a VM que você está prestes a criar. Quando estiver pronto, selecione Criar.