Quando cria uma nova VM a partir de uma imagem especializada, a nova VM retém o nome do computador da VM original. Também são mantidas outras informações específicas do computador, como o CMID. Estas informações duplicadas podem causar problemas. Ao copiar uma VM, tenha em atenção os tipos de informações específicas do computador em que as suas aplicações dependem.
Liste as definições de imagem numa galeria com 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 a VM com az vm create com o --specialized parâmetro para indicar que a imagem é uma imagem especializada.
Utilize o ID de definição de imagem para --image para criar a VM a partir da versão mais recente da imagem que está disponível. Também pode criar a VM a partir de uma versão específica ao fornecer o ID da versão da imagem para --image.
Neste exemplo, estamos a criar uma VM a partir da 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
Assim que tiver uma versão de imagem especializada, pode criar uma ou mais VMs novas com o cmdlet New-AzVM .
Neste exemplo, estamos a utilizar o ID de definição de imagem para garantir que a sua nova VM utilizará a versão mais recente de uma imagem. Também pode utilizar uma versão específica com o ID da versão da imagem para Set-AzVMSourceImage -Id. Por exemplo, para utilizar a versão de imagem 1.0.0 , escreva: Set-AzVMSourceImage -Id "/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition/versions/1.0.0".
Utilizar uma versão de imagem específica significa que a automatização pode falhar se essa versão de imagem específica não estiver disponível porque foi eliminada ou removida da região. Recomendamos que utilize o ID de definição de imagem para criar a sua nova VM, a menos que seja necessária uma versão de imagem específica.
Substitua os nomes de recursos conforme necessário neste 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 pode criar uma ou mais VMs novas. Este exemplo cria uma VM com o nome myVM, no myResourceGroup, no datacenter E.U.A. Leste .
Aceda à definição da imagem. Pode utilizar o filtro de recursos 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.
Em Grupo de recursos, selecione Criar novo e escreva myResourceGroup para o nome.
Em Nome da máquina virtual, escreva myVM.
Em Região, selecione E.U.A. Leste.
Para opções de Disponibilidade, deixe a predefinição Sem redundância de infraestrutura necessária.
O valor de Imagem é preenchido automaticamente com a versão da latest imagem se tiver começado a partir da página para a definição da imagem.
Em Tamanho, escolha um tamanho de VM na lista de tamanhos disponíveis e, em seguida, selecione Selecionar.
Em Conta de administrador, o nome de utilizador está desativado porque são utilizados o nome de utilizador e as credenciais da VM de origem.
Se quiser permitir o acesso remoto à VM, em Portas de entrada públicas, selecione Permitir portas selecionadas e, em seguida, selecione SSH (22) ou RDP (3389) no menu pendente. Se não quiser permitir o acesso remoto à VM, deixe Nenhuma selecionada para Portas de entrada públicas.
Quando terminar, selecione o botão Rever + criar na parte inferior da página.
Depois de a VM passar a validação, selecione Criar na parte inferior da página para iniciar a implementação.
RBAC - na sua organização
Se a subscrição onde reside a galeria estiver no mesmo inquilino, as imagens partilhadas através do RBAC podem ser utilizadas para criar VMs com a CLI e o PowerShell.
Precisará da imageID imagem que pretende utilizar e certifique-se de que a imagem é replicada para a região onde pretende criar a VM.
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.
Precisará da imageID imagem que pretende utilizar e certifique-se de que a imagem é replicada para a região onde pretende criar a VM. Também irá precisar do para a tenantID galeria de origem e do tenantID para onde pretende criar a VM.
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 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 com az vm create com o --specialized parâmetro para indicar que a imagem é 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
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 tem acesso à imagem.
Crie a VM. Substitua as informações no exemplo pelas suas próprias informações. Antes de criar a VM, certifique-se de que a imagem é replicada para a região onde pretende 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
A utilização de imagens de máquinas virtuais submetidas pela comunidade tem vários riscos. As imagens podem conter software maligno, vulnerabilidades de segurança ou violar a propriedade intelectual de alguém. Para ajudar a criar uma experiência segura e fiável para a comunidade, pode comunicar imagens quando vir estes problemas.
A forma mais fácil de comunicar problemas com uma galeria de comunidade é utilizar o portal, que preencherá previamente as informações do relatório:
Para problemas com ligações ou outras informações nos campos de uma definição de imagem, selecione Imagem da comunidade de relatórios.
Se uma versão de imagem contiver código malicioso ou existirem 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.
Também pode utilizar as seguintes ligações para comunicar problemas, mas os formulários não serão preenchidos previamente:
Para criar uma VM com uma imagem partilhada numa galeria de comunidade, utilize o ID exclusivo da imagem para o --image, que estará no seguinte formato:
Como utilizador final, para obter o nome público de uma galeria de comunidade, tem de utilizar o portal. Aceda a Máquinas> virtuaisCriar> máquina >virtual do AzureImagem>Veja todas as imagens>Imagens da Comunidade Nome>da galeria pública.
Liste todas as definições de imagem disponíveis numa galeria de comunidade com az sig image-definition list-community. Neste exemplo, listamos todas as imagens na galeria ContosoImage nos E.U.A. Oeste e, por nome, o ID exclusivo necessário para criar uma VM, o SO e o estado do SO.
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 com az vm create com o --specialized parâmetro para indicar que a imagem é uma imagem especializada.
Neste exemplo, estamos a criar uma VM a partir da 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 utilizar uma imagem da comunidade, ser-lhe-á pedido que aceite os termos legais. A mensagem terá o seguinte aspeto:
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):
Escreva máquinas virtuais na pesquisa.
Em Serviços, selecione Máquinas virtuais.
Na página Máquinas virtuais , selecione Criar e, em seguida , Máquina virtual. É aberta a página Criar uma máquina virtual .
No separador Informações Básicas , em Detalhes do projeto, certifique-se de que a subscrição correta está selecionada e, em seguida, selecione Criar novo grupo de recursos ou selecione um no menu pendente.
Em Detalhes da instância, escreva um nome para o Nome da máquina virtual.
Em Tipo de segurança, certifique-se de que a opção Standard está selecionada.
Para a sua Imagem, selecione Ver todas as imagens. Será aberta a página Selecionar uma imagem .
No menu esquerdo, em Outros Itens, selecione Imagens da comunidade. Os Outros Itens | A página Imagens da Comunidade será aberta.
Selecione uma imagem na lista. Certifique-se de que o estado do SO é Especializado. Se quiser utilizar uma imagem especializada, veja Criar uma VM com uma versão de imagem generalizada. Consoante a escolha da imagem, a Região em que a VM será criada será alterada para corresponder à imagem.
Preencha as restantes opções e, em seguida, selecione o botão Rever + criar na parte inferior da página.
Na página Criar uma máquina virtual , pode ver os detalhes sobre a VM que está prestes a criar. Quando estiver pronto, selecione Criar.
Para publicar imagens numa galeria partilhada diretamente durante a pré-visualização, tem de se registar em https://aka.ms/directsharedgallery-preview. A criação de VMs a partir de uma galeria partilhada direta está aberta a todos os utilizadores do Azure.
Durante a pré-visualização, tem de criar uma nova galeria, com a propriedade sharingProfile.permissions definida como Groups. Ao utilizar a CLI para criar uma galeria, utilize o --permissions groups parâmetro . Não pode utilizar uma galeria existente, a propriedade não pode ser atualizada atualmente.
Para encontrar a uniqueID de uma galeria que é partilhada consigo, utilize az sig list-shared. Neste exemplo, estamos à procura de galerias na região E.U.A. Oeste.
region=westus
az sig list-shared --location $region --query "[].name" -o tsv
Utilize o nome da galeria para localizar todas as imagens disponíveis. Neste exemplo, listamos todas as imagens nos E.U.A. Oeste e pelo nome, o ID exclusivo necessário para criar uma VM, o SO e o estado do 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
Crie a VM com az vm create com o --specialized parâmetro para indicar que a imagem é uma imagem especializada.
Utilize o Id, anexado com /Versions/latest para utilizar a versão mais recente, como o valor de "--image" para criar uma VM.
Neste exemplo, estamos a criar uma VM a partir da 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
Nota
Problema conhecido: na portal do Azure, se selecionar uma região, selecionar uma imagem e, em seguida, alterar a região, receberá uma mensagem de erro: "Só pode criar uma VM nas regiões de replicação desta imagem" mesmo quando a imagem é replicada para essa região. Para eliminar o erro, selecione uma região diferente e, em seguida, mude novamente para a região pretendida. Se a imagem estiver disponível, deverá limpar a mensagem de erro.
Também pode utilizar a CLI do Azure para verificar que imagens são partilhadas consigo. Por exemplo, pode utilizar "az sig list-shared --location westus" para ver que imagens são partilhadas consigo na região E.U.A. Oeste.
Escreva máquinas virtuais na pesquisa.
Em Serviços, selecione Máquinas virtuais.
Na página Máquinas virtuais , selecione Criar e, em seguida , Máquina virtual. É aberta a página Criar uma máquina virtual .
No separador Informações Básicas , em Detalhes do projeto, certifique-se de que a subscrição correta está selecionada e, em seguida, selecione Criar novo grupo de recursos ou selecione um no menu pendente.
Em Detalhes da instância, escreva um nome para o Nome da máquina virtual.
Em Tipo de segurança, certifique-se de que a opção Standard está selecionada.
Para a sua Imagem, selecione Ver todas as imagens. Será aberta a página Selecionar uma imagem .
No menu esquerdo, em Outros Itens, selecione Imagens Partilhadas Diretas (PRÉ-VISUALIZAÇÃO). Os Outros Itens | Será aberta a página Imagens Partilhadas Diretas (PRÉ-VISUALIZAÇÃO ).
Selecione uma imagem na lista. Certifique-se de que o estado do SO é Especializado. Se quiser utilizar uma imagem generalizada, veja Criar uma VM com uma versão de imagem generalizada. Consoante a imagem que escolher, a Região em que a VM será criada será alterada para corresponder à imagem.
Preencha as restantes opções e, em seguida, selecione o botão Rever + criar na parte inferior da página.
Na página Criar uma máquina virtual , pode ver os detalhes sobre a VM que está prestes a criar. Quando estiver pronto, selecione Criar.