Descrever as opções disponíveis para criar e gerenciar uma Máquina Virtual do Azure

Concluído

O portal do Azure é a maneira mais fácil de criar recursos, como VMs, quando você está começando. No entanto, não é necessariamente a maneira mais eficiente ou mais rápida de trabalhar com o Azure, especialmente, se você precisa criar vários recursos juntos. No nosso caso, acabamos criando dezenas de VMs para realizar diferentes tarefas. A criação manual delas no portal do Azure não seria uma tarefa divertida.

Vamos examinar algumas outras maneiras de criar e administrar recursos no Azure:

  • Modelos do Azure Resource Manager
  • Azure PowerShell
  • CLI do Azure
  • API REST do Azure
  • SDK do Cliente do Azure
  • Extensões de VM do Azure
  • Serviços de Automação do Azure

Modelos do Gerenciador de Recursos

Vamos supor que você deseje criar uma cópia de uma VM com as mesmas configurações. Você pode criar uma imagem de VM, carregá-la no Azure e referenciá-la como a base para sua nova VM. Esse processo é ineficiente e demorado. O Azure oferece a opção de criar um modelo com base no qual criar uma cópia exata de uma VM.

Os modelos do Resource Manager são arquivos JSON que definem os recursos necessários para implantar a solução.

Você pode criar um modelo de recurso para a sua VM. No menu da VM, em Automação, selecione Exportar modelo.

Screenshot showing Export template option for a VM.

Observação

As políticas dos recursos incluídos na área restrita deste módulo do Learn impedem que você consiga exportar a VM que acabou de criar. Dito isso, um modelo exportado é um arquivo JSON fácil de editar. É possível baixar ou salvar um modelo para uso posterior ou implantar uma nova VM imediatamente com base nesse modelo. Por exemplo, talvez você crie uma VM de um modelo em um ambiente de teste e descubra que ela não funciona de modo adequado para substituir seu computador local. Você pode excluir o grupo de recursos, que exclui todos os recursos, ajustar o modelo e tentar novamente. Caso deseje fazer alterações somente nos recursos existentes e implantados, você poderá alterar o modelo usado para criar os recursos e implantá-los novamente. O Resource Manager alterará os recursos de acordo com o novo modelo.

Após fazer as alterações de sua preferência, será possível usar esse modelo para replicar várias versões da infraestrutura com facilidade, como o processo de preparo e a produção. É possível parametrizar campos, como o nome da VM, o nome da rede, o nome da conta de armazenamento e assim por diante, bem como carregar o modelo várias vezes usando diferentes parâmetros para personalizar cada ambiente.

Para obter mais informações sobre como usar modelos, confira Guia de início rápido: Criar uma máquina virtual Ubuntu Linux usando um modelo do ARM.

CLI do Azure

Uma opção de interação com o script e a linha de comando do Azure é a CLI do Azure.

A CLI do Azure é uma ferramenta de linha de comando multiplataforma da Microsoft para gerenciar recursos do Azure como máquinas virtuais e discos na linha de comando. Ela está disponível para Linux, macOS, Windows ou em um navegador que use o Cloud Shell.

Por exemplo, na CLI, você pode criar uma VM do Azure com o comando az vm create.

az vm create \
    --resource-group TestResourceGroup \
    --name test-wp1-eus-vm \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

A CLI do Azure pode ser usada com outras linguagens de script, como Ruby e Python.

Saiba mais sobre como criar e gerenciar VMs no módulo Gerenciar máquinas virtuais com a ferramenta CLI do Azure.

Para obter mais informações sobre como usar a CLI do Azure para criar VMs, confira Guia de início rápido: Criar uma máquina virtual Linux usando a CLI.

Azure PowerShell

O Azure PowerShell é ideal para tarefas interativas únicas e/ou para automatizar tarefas repetidas.

Observação

O PowerShell é um shell multiplataforma que fornece serviços como a janela do shell e a análise de comando. O Azure PowerShell é um pacote complementar opcional que adiciona os comandos específicos do Azure (conhecidos como cmdlets). Saiba mais sobre como instalar e usar o Azure PowerShell em um módulo de treinamento separado.

Por exemplo, você pode usar o cmdlet New-AzVM para criar uma máquina virtual do Azure baseada em Debian.

New-AzVm `
    -ResourceGroupName "TestResourceGroup" `
    -Name "test-wp1-eus-vm" `
    -Location "East US" `
    -Image Debian11 `
    -VirtualNetworkName "test-wp1-eus-network" `
    -SubnetName "default" `
    -SecurityGroupName "test-wp1-eus-nsg" `
    -PublicIpAddressName "test-wp1-eus-pubip" `
    -GenerateSshKey `
    -SshKeyName myPSKey
    -OpenPorts 22

Conforme mostrado aqui, você fornece vários parâmetros para manipular o grande número de definições de configuração de VM disponíveis. A maioria dos parâmetros tem valores razoáveis; você só precisa especificar os parâmetros obrigatórios. Saiba mais sobre como criar e gerenciar VMs com o Azure PowerShell no módulo Automatizar tarefas do Azure usando scripts com o PowerShell.

Para obter mais informações sobre como usar o PowerShell para criar VMs, confira Guia de início rápido: Criar uma máquina virtual Linux usando o PowerShell.

Terraform

O Azure também tem um provedor Terraform, portanto, você pode usar facilmente o Terraform para criar e gerenciar suas VMs. O Terraform permite a definição, a visualização e a implantação da infraestrutura de nuvem. Usando o Terraform, você cria arquivos de configuração usando sintaxe de HCL. A sintaxe da HCL permite que você especifique o provedor de nuvem, como o Azure, e os elementos que compõem sua infraestrutura de nuvem. Depois de criar os arquivos de configuração, você cria um plano de execução que permite visualizar as alterações de infraestrutura antes de serem implantadas. Depois de verificar as alterações, aplique o plano de execução para implantar a infraestrutura.

Para obter mais informações, confira Provedor do Terraform do Azure e o Guia de início rápido: Usar o Terraform para criar uma VM.

Programática (APIs)

Em termos gerais, o Azure PowerShell e a CLI do Azure são boas opções se você tem scripts simples para executar e deseja se limitar às ferramentas de linha de comando. Quando se trata de cenários mais complexos em que a criação e o gerenciamento de VMs fazem parte de um aplicativo maior com uma lógica complexa, outra abordagem é necessária.

Você pode interagir com cada tipo de recurso no Azure de forma programática.

API REST do Azure

A API REST do Azure fornece aos desenvolvedores operações categorizadas por recurso, bem como a capacidade de criar e gerenciar VMs. As operações são expostas como URIs com os métodos HTTP correspondentes (GET, PUT, POST, DELETE e PATCH) e uma resposta correspondente.

As APIs de Computação do Azure oferecem acesso programático a máquinas virtuais e seus recursos de suporte.

Para obter mais informações, confira a Referência de API REST de Máquinas Virtuais.

SDK do Cliente do Azure

Embora a API REST seja independente de linguagem e de plataforma, na maioria das vezes, os desenvolvedores buscam um nível mais alto de abstração. O SDK do Cliente do Azure encapsula a API REST do Azure, facilitando a interação dos desenvolvedores com o Azure.

Os SDKs clientes do Azure estão disponíveis em uma variedade de linguagens e estruturas, incluindo as baseadas no .NET como C#, Java, Node.js, PHP, Python, Ruby e Go.

Veja um snippet de exemplo de código C# desenvolvido para criar uma VM do Azure usando o pacote NuGet Microsoft.Azure.Management.Fluent.

var azure = Azure
    .Configure()
    .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
    .Authenticate(credentials)
    .WithDefaultSubscription();
// ...
var vmName = "test-wp1-eus-vm";

azure.VirtualMachines.Define(vmName)
    .WithRegion(Region.USEast)
    .WithExistingResourceGroup("TestResourceGroup")
    .WithExistingPrimaryNetworkInterface(networkInterface)
    .WithLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .WithAdminUsername("jonc")
    .WithAdminPassword("aReallyGoodPasswordHere")
    .WithComputerName(vmName)
    .WithSize(VirtualMachineSizeTypes.StandardDS1)
    .Create();

Veja o mesmo snippet em Java usando o SDK do Java do Azure.

String vmName = "test-wp1-eus-vm";
// ...
VirtualMachine virtualMachine = azure.virtualMachines()
    .define(vmName)
    .withRegion(Region.US_EAST)
    .withExistingResourceGroup("TestResourceGroup")
    .withExistingPrimaryNetworkInterface(networkInterface)
    .withLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .withAdminUsername("jonc")
    .withAdminPassword("aReallyGoodPasswordHere")
    .withComputerName(vmName)
    .withSize("Standard_DS1")
    .create();

Extensões de VM do Azure

Vamos supor que você deseje configurar e instalar mais softwares na máquina virtual após a implantação inicial. Você deseja que essa tarefa use uma configuração específica, e seja monitorada e executada automaticamente.

Extensões de VM do Azure são pequenos aplicativos que permitem configurar e automatizar tarefas em VMs do Azure após a implantação inicial.

Para obter mais informações, confira Recursos e extensões da máquina virtual do Azure.

Serviços de Automação do Azure

Economia de tempo, redução de erros e aumento da eficiência são alguns dos principais desafios de gerenciamento operacional enfrentados ao gerenciar a infraestrutura remota. Se você tiver muitos serviços de infraestrutura, poderá considerar o uso de serviços de nível superior no Azure para operar em um nível superior.

A Automação do Azure permite integrar serviços que possibilitam automatizar com facilidade tarefas de gerenciamento frequentes, demoradas e propensas a erros. Esses serviços incluem automação de processos, gerenciamento de configuração e gerenciamento de atualizações.

  • Automação de Processos. Vamos supor que você tenha uma VM que é monitorada para um evento de erro específico. Convém executar ações e corrigir problemas assim que eles forem reportados. Uma automação de processos permite configurar tarefas do observador que podem responder a eventos que talvez ocorram no datacenter.

  • Gerenciamento de Configuração. Talvez você deseje acompanhar as atualizações de software que ficam disponíveis para o sistema operacional executado na VM. Há atualizações específicas que talvez você deseje incluir ou excluir. O gerenciamento de configuração permite acompanhar essas atualizações e executar ações conforme necessário. Você usa o Microsoft Endpoint Configuration Manager para gerenciar os computadores, os servidores e os dispositivos móveis de sua empresa. Você pode estender esse suporte para as VMs do Azure com o Configuration Manager.

  • Gerenciamento de Atualizações. Use esse serviço para gerenciar atualizações e patches das VMs. Com esse serviço, você pode avaliar o status de atualizações disponíveis, agendar a instalação e examinar os resultados de implantação para verificar se as atualizações foram aplicadas com êxito. O gerenciamento de atualizações incorpora serviços que fornecem gerenciamento de processos e de configuração. Habilite o gerenciamento de atualizações para uma VM diretamente em sua conta da Automação do Azure. Também é possível habilitar o gerenciamento de atualizações de uma máquina virtual acessando o painel dela no portal.

Desligamento automático

O desligamento automático é um recurso no Azure que permite desligar automaticamente suas VMs em um agendamento. Use o desligamento automático para economizar custos, garantindo que suas VMs não estejam em execução quando não forem necessárias. Você pode definir o agendamento para que o desligamento automático ocorra diariamente ou semanalmente e também pode especificar o fuso horário para o agendamento.

Para navegar até o recurso de desligamento automático em uma VM no portal do Azure, acesse a folha da VM no portal, clique em "Desligamento automático" na seção "Operações" e defina as configurações de desligamento automático de acordo com suas preferências.

Screenshot showing Auto-shutdown option for a VM.

Para obter mais informações, consulte Desligamento automático.

Como você pode ver, o Azure fornece diversas ferramentas para criar e administrar recursos, para que você possa integrar as operações de gerenciamento em um processo que realmente funcione. Vamos examinar alguns dos outros serviços do Azure para garantir que seus recursos de infraestrutura estejam funcionando sem problemas.