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"
.
Depois de ter uma versão de imagem generalizada, você pode criar uma ou mais novas VMs. Usando o cmdlet New-AzVM .
Neste exemplo, estamos usando o ID de definição de imagem para garantir que sua nova VM use a versão mais recente de uma imagem. Você também pode usar uma versão específica usando o ID da versão da imagem para Set-AzVMSourceImage -Id
. Por exemplo, para usar a imagem versão 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 usar uma versão de imagem específica significa que a automação pode falhar se essa versão específica da imagem não estiver disponível porque foi excluída ou removida da região. Recomendamos usar o ID de definição de imagem para criar sua nova VM, a menos que uma versão de imagem específica seja necessária.
Substitua nomes de recursos conforme necessário nesses exemplos.
Conjunto de parâmetros simplificado
Você pode usar o conjunto de 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 endereço IP público, 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 completo de parâmetros
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
Crie 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"
},
}
Crie 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"
}
Criar 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 uma 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 Linux. A oSProfile
seção contém alguns detalhes específicos do sistema operacional. Consulte 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 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",
"adminPassword": "{your-password}"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{nicName}",
}
]
}
},
Agora você pode criar uma ou mais novas VMs. Este exemplo cria uma VM chamada myVM, no myResourceGroup, no datacenter do Leste dos EUA .
- Vá para a definição da sua imagem. Você pode usar o filtro de recursos para mostrar todas as definições de imagem disponíveis.
- Na página da definição da imagem, selecione Criar VM no menu na parte superior da página.
- Para Grupo de recursos, selecione Criar novo e digite myResourceGroup para o nome.
- Em Nome da máquina virtual, digite myVM.
- Em Região, selecione Leste dos EUA.
- Para as opções de Disponibilidade, deixe o padrão Sem necessidade de redundância de infraestrutura.
- O valor de Image é preenchido automaticamente com a versão da
latest
imagem se você 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, escolha Selecionar.
- Em Conta de administrador, você precisa fornecer um nome de usuário, como azureuser e uma senha ou chave SSH. A palavra-passe tem de ter, pelo menos, 12 carateres e cumprir os requisitos de complexidade definidos.
- Se quiser permitir o acesso remoto à VM, em Portas de entrada públicas, escolha Permitir portas selecionadas e, em seguida, selecione SSH (22) ou RDP (3389) na lista suspensa. Se você não quiser permitir o acesso remoto à VM, deixe Nenhum selecionado para Portas de entrada públicas.
- Quando terminar, selecione o botão Rever + 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 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.
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.
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. Nesse caso, tenant1 é onde a imagem é armazenada e tenant2 é onde 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 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
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. Nesse caso, tenant1 é onde a imagem é armazenada e tenant2 é onde 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 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.
$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
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:
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):
Obtenha o ID da versão da imagem. O valor será usado na solicitação de implantação da VM.
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 VM. 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. Você pode usar 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 Image pré-selecionado.
- Na guia Noções básicas, em Detalhes do projeto, verifique se a assinatura correta está selecionada e escolha Criar novo grupo de recursos ou selecione um na lista suspensa.
- Em Detalhes da instância, digite um nome para o nome da máquina virtual.
- Conclua o restante das opções e selecione o botão Revisar + criar na parte inferior da página.
- Na página Criar uma máquina virtual, você pode ver os detalhes sobre a VM que está prestes a criar. Quando estiver pronto, selecione Criar.
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
Obtenha o ID da versão da imagem. O valor será usado na solicitação de implantação da VM.
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 VM. 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
}
}
]
}
}
}
Nota
Problema conhecido: no portal do Azure, se você selecionar uma região, selecionar uma imagem e alterar a região, receberá uma mensagem de erro: "Você só pode criar VM nas regiões de replicação desta imagem", mesmo quando a imagem for replicada para essa região. Para se livrar do erro, selecione uma região diferente e volte para a região desejada. Se a imagem estiver disponível, deve 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, selecione Criar e, em seguida, Máquina virtual. A página Criar uma máquina virtual é aberta.
- Na guia Noções básicas, em Detalhes do projeto, verifique se a assinatura correta está selecionada e escolha Criar novo grupo de recursos ou selecione um na lista suspensa.
- Em Detalhes da instância, digite um nome para o nome da máquina virtual.
- Para Tipo de segurança, verifique se Padrão está selecionado.
- Para a sua Imagem, selecione Ver todas as imagens. A página Selecione uma imagem é aberta.
- No menu à esquerda, em Outros itens, selecione Imagens compartilhadas diretas (VISUALIZAÇÃO). Os Outros Itens | A página Direct Shared Images (PREVIEW) é aberta.
- O âmbito nesta secção está definido como 'Subscrição' por predefinição, altere o âmbito para 'Inquilino' se não vir as imagens e clique fora da caixa para ver a lista de imagens partilhadas com todo o Inquilino.
- Selecione uma imagem na lista. Certifique-se de que o estado do SO é generalizado. Se você quiser usar uma imagem especializada, consulte 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 Revisar + criar na parte inferior da página.
- Na página Criar uma máquina virtual, você pode ver os detalhes sobre a VM que está prestes a criar. Quando estiver pronto, selecione Criar.