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"
.
Agora que tem uma versão de imagem generalizada, você pode criar uma ou mais novas VMs. 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"
.
Lembre-se de que 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 nestes exemplos.
Conjunto de parâmetros simplificado
Você pode usar o conjunto parâmetros simplificado para criar rapidamente uma VM a partir de uma imagem. O conjunto de parâmetros simplificado usa o nome da VM para criar automaticamente alguns dos recursos necessários, como vNet e IP, para você.
# Create some variables for the new VM
$resourceGroup = "myResourceGroup"
$location = "South Central US"
$vmName = "myVMfromImage"
# 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 user object
$cred = Get-Credential `
-Message "Enter a username and password for the virtual machine."
# Create a resource group
New-AzResourceGroup `
-Name $resourceGroup `
-Location $location
New-AzVM `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name $vmName `
-Image $imageDefinition.Id
-Credential $cred
Conjunto de parâmetros completo
Você pode criar uma VM usando recursos específicos usando o conjunto de parâmetros completo.
# Create some variables for the new VM
$resourceGroup = "myResourceGroup"
$location = "South Central US"
$vmName = "myVMfromImage"
# 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 user object
$cred = Get-Credential `
-Message "Enter a username and password for the virtual machine."
# Create a resource group
New-AzResourceGroup `
-Name $resourceGroup `
-Location $location
# Network pieces
$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 myNic `
-ResourceGroupName $resourceGroup `
-Location $location `
-SubnetId $vnet.Subnets[0].Id `
-PublicIpAddressId $pip.Id `
-NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration using $imageDefinition.Id to use the latest image version.
$vmConfig = New-AzVMConfig `
-VMName $vmName `
-VMSize Standard_D1_v2 | `
Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred | `
Set-AzVMSourceImage -Id $imageDefinition.Id | `
Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine
New-AzVM `
-ResourceGroupName $resourceGroup `
-Location $location `
-VM $vmConfig
Criar uma rede virtual.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vNetName}?api-version=2020-05-01
{
"properties": {
"addressSpace": {
"addressPrefixes": [
"10.0.0.0/16"
]
}
},
"location": "eastus"
}
Crie uma sub-rede.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vNetName}/subnets/{subnetName}?api-version=2020-05-01
{
"properties": {
"addressPrefix": "10.0.0.0/16"
},
}
Criar um endereço IP público.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPAddresses/{pIPName}?api-version=2020-11-01
{
"location": "eastus"
}
Crie um grupo de segurança de rede.
# @name vmNSG
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}?api-version=2020-11-01
{
"properties": {
"securityRules": [
{
"name": "AllowSSH",
"properties": {
"protocol": "Tcp",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"access": "Deny",
"destinationPortRange": "3389",
"sourcePortRange": "*",
"priority": 1000,
"direction": "Inbound"
}
}
]
},
"location": "eastus"
}
Crie um NIC.
# @name vmNIC
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{nicName}?api-version=2020-05-01
{
"properties": {
"enableAcceleratedNetworking": true,
"networkSecurityGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
},
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"subnet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vNetName}/subnets/{subNetName}",
},
"publicIPAddress": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPAddresses/{pipName}"
}
}
}
]
},
"location": "eastus",
}
Crie uma VM do Linux. A seção oSProfile
contém alguns detalhes específicos do sistema operacional. Veja o próximo exemplo de código para a sintaxe do Windows.
# @name vm
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}?api-version=2020-06-01
{
"location": "eastus",
"properties": {
"hardwareProfile": {
"vmSize": "Standard_DS3_v2"
},
"storageProfile": {
"imageReference": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{galleryImageName}/versions/{versionNumber}"
},
"osDisk": {
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "StandardSSD_LRS"
},
"createOption": "FromImage"
}
},
"osProfile": {
"adminUsername": "{your-username}",
"computerName": "myVM",
"linuxConfiguration": {
"ssh": {
"publicKeys": [
{
"path": "/home/{your-username}/.ssh/authorized_keys",
"keyData": "{sshKey}",
}
]
},
"disablePasswordAuthentication": true
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{nicName}",
}
]
}
},
}
CriE uma VM Windows.
# @name vm
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}?api-version=2020-06-01
{
"location": "eastus",
"properties": {
"hardwareProfile": {
"vmSize": "Standard_DS3_v2"
},
"storageProfile": {
"imageReference": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{galleryImageName}/versions/{versionNumber}"
},
"osDisk": {
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "StandardSSD_LRS"
},
"createOption": "FromImage"
}
},
"osProfile": {
"adminUsername": "{your-username}",
"computerName": "myVM",
"adminPassword": "{your-password}"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{nicName}",
}
]
}
},
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, forneça um nome de usuário, como azureuser, e uma senha ou chave SSH. A senha deve ter no mínimo 12 caracteres e atender a requisitos de complexidade definidos.
- 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.
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.
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.
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. Nesse caso, tenant1 é o local em que a imagem é armazenada e tenant2 é o local em que você 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. 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
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. Nesse caso, tenant1 é o local em que a imagem é armazenada e tenant2 é o local em que você deseja criar a VM. É assim que o Azure autentica que você tem acesso à imagem.
$tenant1 = "<Tenant 1 ID>"
$tenant2 = "<Tenant 2 ID>"
Connect-AzAccount -Tenant "<Tenant 1 ID>" -UseDeviceAuthentication
Connect-AzAccount -Tenant "<Tenant 2 ID>" -UseDeviceAuthentication
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.
$resourceGroup = "myResourceGroup"
$location = "South Central US"
$vmName = "myVMfromImage"
# 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 user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location
# Networking pieces
$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 Allow
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
-Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP
$nic = New-AzNetworkInterface -Name myNic -ResourceGroupName $resourceGroup -Location $location `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration using the $image variable to specify the image
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize Standard_D1_v2 | `
Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred | `
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:
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):
Obtenha a ID da versão da imagem. O valor será usado na solicitação de implantação da máquina virtual.
GET
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/Locations/{location}/CommunityGalleries/{CommunityGalleryPublicName}/Images/{galleryImageName}/Versions/{1.0.0}?api-version=2021-07-01
Resposta:
"location": "West US",
"identifier": {
"uniqueId": "/CommunityGalleries/{PublicGalleryName}/Images/{imageName}/Versions/{verionsName}"
},
"name": "1.0.0"
Agora você pode implantar a máquina virtual. O exemplo requer a versão da API 2021-07-01 ou posterior.
PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{rg}/providers/Microsoft.Compute/virtualMachines/{VMName}?api-version=2021-03-01
{
"location": "{location}",
"properties": {
"hardwareProfile": {
"vmSize": "Standard_D1_v2"
},
"storageProfile": {
"imageReference": {
"communityGalleryImageId":"/communityGalleries/{publicGalleryName}/images/{galleryImageName}/versions/1.0.0"
},
"osDisk": {
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "Standard_LRS"
},
"name": "myVMosdisk",
"createOption": "FromImage"
}
},
"osProfile": {
"adminUsername": "azureuser",
"computerName": "myVM",
"adminPassword": "{password}}"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/00000000-0000-0000-0000-
000000000000/resourceGroups/{rg}/providers/Microsoft.Network/networkInterfaces/{networkIntefaceName}",
"properties": {
"primary": true
}
}
]
}
}
}
- Digite Imagens da comunidade na pesquisa.
- Em Serviços, selecione Imagens da comunidade.
- Selecione a imagem na lista de imagens disponíveis. Use o filtro para restringir a lista conforme necessário.
- Na página da imagem, selecione Criar VM. A página Criar uma máquina virtual é aberta com o valor Imagem pré-selecionado.
- 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.
- 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.
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
Obtenha a ID da versão da imagem. O valor será usado na solicitação de implantação da máquina virtual.
GET
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/Locations/{location}/sharedGalleries/{galleryUniqueName}/Images/{galleryImageName}/Versions/{1.0.0}?api-version=2021-07-01
Resposta:
"location": "West US",
"identifier": {
"uniqueId": "/sharedGalleries/{PublicGalleryName}/Images/{imageName}/Versions/{verionsName}"
},
"name": "1.0.0"
Agora você pode implantar a máquina virtual. O exemplo requer a versão da API 2021-07-01 ou posterior.
PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{rg}/providers/Microsoft.Compute/virtualMachines/{VMName}?api-version=2021-03-01
{
"location": "{location}",
"properties": {
"hardwareProfile": {
"vmSize": "Standard_D1_v2"
},
"storageProfile": {
"imageReference": {
"sharedGalleryImageId":"/sharedGalleries/{galleryUniqueName}/images/{galleryImageName}/versions/1.0.0"
},
"osDisk": {
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "Standard_LRS"
},
"name": "myVMosdisk",
"createOption": "FromImage"
}
},
"osProfile": {
"adminUsername": "azureuser",
"computerName": "myVM",
"adminPassword": "{password}}"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/00000000-0000-0000-0000-
000000000000/resourceGroups/{rg}/providers/Microsoft.Network/networkInterfaces/{networkIntefaceName}",
"properties": {
"primary": true
}
}
]
}
}
}
Observação
Problema conhecido: no portal do Azure, ao selecionar uma região, escolher uma imagem e alterar a região, você receberá a mensagem de erro "Só é possível criar uma VM nas regiões de replicação desta imagem", mesmo quando a imagem tiver sido replicada nessa 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, use az sig list-shared --location westus
para ver as imagens que 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 é 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) é aberta.
- O escopo nesta seção é definido como 'Assinatura' por padrão. Altere o escopo para 'Locatário' se você não vir as imagens e clique fora da caixa para ver a lista de imagens compartilhadas para todo o locatário.
- Selecione uma imagem na lista. Verifique se o estado do sistema operacional está generalizado. Se você quiser criar usar uma imagem especializada, confira Criar uma VM usando uma versão de imagem especializada. 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.