Tutorial: Criar e usar uma imagem personalizada para conjuntos de dimensionamento de máquina virtual com o Azure PowerShell
Quando cria um conjunto de dimensionamento, tem de especificar uma imagem a ser utilizada quando as instâncias de VM são implementadas. Para reduzir o número de tarefas após as instâncias de VM serem implementadas, pode utilizar uma imagem de VM personalizada. Esta imagem de VM personalizada inclui instalações ou configurações de aplicações obrigatórias. Quaisquer instâncias de VM criadas no conjunto de dimensionamento utilizam a imagem de VM personalizada e estão prontas para apresentar o seu tráfego de aplicações. Neste tutorial, ficará a saber como:
- Criar uma Galeria de Computação do Azure
- Criar uma definição de imagem
- Criar uma versão de imagem
- Criar um conjunto de escala a partir de uma imagem
- Partilhar uma galeria de imagens
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Iniciar o Azure Cloud Shell
O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.
Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com/powershell. Selecione Copiar para copiar os blocos de código, cole-o no Cloud Shell e prima Enter para executá-lo.
Criar e configurar uma VM de origem
Primeiro, crie um grupo de recursos com New-AzResourceGroup e, em seguida, crie uma VM com New-AzVM. Essa VM é então usada como a fonte para a imagem. O exemplo seguinte cria uma VM com o nome myVM no grupo de recursos com o nome myResourceGroup:
New-AzResourceGroup -Name 'myResourceGroup' -Location 'EastUS'
New-AzVm `
-ResourceGroupName 'myResourceGroup' `
-Name 'myVM' `
-Location 'East US' `
-VirtualNetworkName 'myVnet' `
-SubnetName 'mySubnet' `
-SecurityGroupName 'myNetworkSecurityGroup' `
-PublicIpAddressName 'myPublicIpAddress' `
-OpenPorts 80,3389
Armazenar a variável VM
Você pode ver uma lista de VMs que estão disponíveis em um grupo de recursos usando Get-AzVM. Depois de saber o nome da VM e qual grupo de recursos, você pode usar Get-AzVM
novamente para obter o objeto VM e armazená-lo em uma variável para usar mais tarde. Este exemplo obtém uma VM chamada myVM do grupo de recursos "myResourceGroup" e a atribui à variável $vm.
$sourceVM = Get-AzVM `
-Name myVM `
-ResourceGroupName myResourceGroup
Criar uma galeria de imagens
Uma galeria de imagens é o principal recurso usado para habilitar o compartilhamento de imagens. Os caracteres permitidos para o nome da galeria são letras maiúsculas ou minúsculas, dígitos, pontos e pontos. O nome da galeria não pode conter traços. Os nomes das galerias devem ser exclusivos na sua assinatura.
Crie uma galeria de imagens usando New-AzGallery. O exemplo a seguir cria uma galeria chamada myGallery no grupo de recursos myGalleryRG .
$resourceGroup = New-AzResourceGroup `
-Name 'myGalleryRG' `
-Location 'EastUS'
$gallery = New-AzGallery `
-GalleryName 'myGallery' `
-ResourceGroupName $resourceGroup.ResourceGroupName `
-Location $resourceGroup.Location `
-Description 'Azure Compute Gallery for my organization'
Criar uma definição de imagem
As definições de imagem criam um agrupamento lógico para imagens. Eles são usados para gerenciar informações sobre as versões de imagem que são criadas dentro deles. Os nomes de definição de imagem podem ser compostos por letras maiúsculas ou minúsculas, dígitos, pontos, traços e pontos. Para obter mais informações sobre os valores que você pode especificar para uma definição de imagem, consulte Definições de imagem.
Crie a definição de imagem usando New-AzGalleryImageDefinition. Neste exemplo, a imagem da galeria é chamada myGalleryImage e é criada para uma imagem especializada.
$galleryImage = New-AzGalleryImageDefinition `
-GalleryName $gallery.Name `
-ResourceGroupName $resourceGroup.ResourceGroupName `
-Location $gallery.Location `
-Name 'myImageDefinition' `
-OsState specialized `
-OsType Windows `
-Publisher 'myPublisher' `
-Offer 'myOffer' `
-Sku 'mySKU'
Criar uma versão de imagem
Crie uma versão de imagem de uma VM usando New-AzGalleryImageVersion.
Os caracteres permitidos para a versão da imagem são números e pontos. Os números devem estar dentro do intervalo de um inteiro de 32 bits. Formato: MajorVersion.Versão Menor.Adesivo.
Neste exemplo, a versão da imagem é 1.0.0 e é replicada para datacenters do Leste dos EUA e do Centro-Sul dos EUA . Ao escolher regiões de destino para replicação, você precisa incluir a região de origem como destino para replicação.
Para criar uma versão de imagem a partir da VM, use $vm.Id.ToString()
para o -Source
.
$region1 = @{Name='South Central US';ReplicaCount=1}
$region2 = @{Name='East US';ReplicaCount=2}
$targetRegions = @($region1,$region2)
New-AzGalleryImageVersion `
-GalleryImageDefinitionName $galleryImage.Name`
-GalleryImageVersionName '1.0.0' `
-GalleryName $gallery.Name `
-ResourceGroupName $resourceGroup.ResourceGroupName `
-Location $resourceGroup.Location `
-TargetRegion $targetRegions `
-Source $sourceVM.Id.ToString() `
-PublishingProfileEndOfLifeDate '2023-12-01'
Pode levar algum tempo para replicar a imagem para todas as regiões de destino.
Criar um conjunto de escalas a partir da imagem
Agora, crie um conjunto de escala com New-AzVmss que usa o -ImageName
parâmetro para definir a imagem de VM personalizada criada na etapa anterior. Para distribuir o tráfego pelas instâncias de VM individuais, é também criado um balanceador de carga. O balanceador de carga inclui regras para distribuir o tráfego na porta TCP 80, bem como permitir o tráfego de ambiente de trabalho remoto na porta TCP 3389 e a comunicação remota do PowerShell na porta TCP 5985. Quando solicitado, forneça as suas próprias credenciais administrativas pretendidas para as instâncias de VM no conjunto de dimensionamento:
Importante
A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure assumirão como padrão o Modo de Orquestração Flexível se nenhum modo de orquestração for especificado. Para obter mais informações sobre essa alteração e quais ações você deve tomar, vá para Breaking Change for VMSS PowerShell/CLI Customers - Microsoft Community Hub
# Define variables for the scale set
$resourceGroupName = "myScaleSet"
$scaleSetName = "myScaleSet"
$location = "East US"
# Create a resource group
New-AzResourceGroup -ResourceGroupName $resourceGroupName -Location $location
# Create a configuration
$vmssConfig = New-AzVmssConfig `
-Location $location `
-OrchestrationMode Flexible `
-SkuCapacity 2 `
-SkuName "Standard_D2s_v3"
# Reference the image version
Set-AzVmssStorageProfile $vmssConfig `
-OsDiskCreateOption "FromImage" `
-ImageReferenceId $galleryImage.Id
# Create the scale set
New-AzVmss `
-ResourceGroupName $resourceGroupName `
-Name $scaleSetName `
-VirtualMachineScaleSet $vmssConfig
A criação e configuração de todas as VMs e recursos do conjunto de dimensionamento demora alguns minutos.
Partilhe a galeria
Recomendamos que partilhe o acesso ao nível da galeria de imagens. Use um endereço de email e o cmdlet Get-AzADUser para obter a ID do objeto para o usuário e, em seguida, use New-AzRoleAssignment para dar acesso à galeria. Substitua o e-mail de exemplo, alinne_montes@contoso.com neste exemplo, por suas próprias informações.
# Get the object ID for the user
$user = Get-AzADUser -StartsWith alinne_montes@contoso.com
# Grant access to the user for our gallery
New-AzRoleAssignment `
-ObjectId $user.Id `
-RoleDefinitionName Reader `
-ResourceName $gallery.Name `
-ResourceType Microsoft.Compute/galleries `
-ResourceGroupName $resourceGroup.ResourceGroupName
Clean up resources (Limpar recursos)
Quando não for mais necessário, você poderá usar o cmdlet Remove-AzResourceGroup para remover o grupo de recursos e todos os recursos relacionados:
# Delete the gallery
Remove-AzResourceGroup -Name myGalleryRG
# Delete the scale set resource group
Remove-AzResourceGroup -Name myResoureceGroup
Próximos passos
Neste tutorial, aprendeu a criar e utilizar uma imagem de VM personalizada nos seus conjuntos de dimensionamento com o Azure PowerShell:
- Criar uma Galeria de Computação do Azure
- Criar uma definição de imagem
- Criar uma versão de imagem
- Criar um conjunto de escala a partir de uma imagem
- Partilhar uma galeria de imagens
Prossiga para o próximo tutorial para saber como implementar aplicações no seu conjunto de dimensionamento.