Descrever as opções disponíveis para criar e gerir uma Máquina Virtual do Azure
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 forma mais rápida ou eficiente de trabalhar com o Azure, especialmente se tiver necessidade de criar vários recursos em conjunto. No nosso caso, eventualmente criamos dezenas de VMs para lidar com diferentes tarefas. Não seria uma tarefa divertida criá-las manualmente no portal do Azure!
Vamos analisar outras formas 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 Automatização do Azure
Modelos do Resource Manager
Suponhamos que pretende criar uma cópia de uma VM com as mesmas definições. Pode criar uma imagem de VM, carregá-la para o Azure e utilizá-la como referência base para a sua nova VM. Este processo é demorado e não é eficiente. O Azure fornece-lhe a opção de criar um modelo a partir do qual pode criar uma cópia exata de uma VM.
Os modelos do Resource Manager são ficheiros JSON que definem os recursos que precisa de implementar para a sua solução.
Você pode criar um modelo de recurso para sua VM. No menu VM, em Automação, selecione Exportar modelo.
Nota
As políticas para os recursos incluídos na área restrita para este módulo do Learn impedem que você possa exportar a VM que acabou de criar; Dito isso, um modelo exportado é um arquivo JSON fácil de editar. Você tem a opção de baixar ou salvar um modelo para uso posterior ou implantar imediatamente uma nova VM com base no modelo. Por exemplo, você pode criar uma VM a partir de um modelo em um ambiente de teste e descobrir que ela não funciona para substituir sua máquina local. Pode eliminar o grupo de recursos, o que elimina todos os recursos, otimizar o modelo e tentar novamente. Se você quiser apenas fazer alterações nos recursos implantados existentes, poderá alterar o modelo usado para criá-lo e reimplantá-lo. O Resource Manager altera os recursos de forma a corresponderem ao novo modelo.
Depois de fazê-lo funcionar da maneira desejada, você pode usar esse modelo para replicar facilmente várias versões da sua infraestrutura, como preparação e produção. Você pode parametrizar campos como o nome da VM, nome da rede, nome da conta de armazenamento e assim por diante, e carregar o modelo repetidamente, usando parâmetros diferentes para personalizar cada ambiente.
Para obter mais informações sobre como usar modelos, consulte Guia de início rápido: criar uma máquina virtual Ubuntu Linux usando um modelo ARM.
CLI do Azure
Uma opção para script e interação de linha de comando do Azure é a CLI do Azure.
A CLI do Azure é uma ferramenta de linha de comandos de várias plataformas da Microsoft para gerir os recursos do Azure, como as máquinas virtuais e os discos a partir da linha de comandos. Ele está disponível para Linux, macOS, Windows ou em um navegador usando o Cloud Shell.
Por exemplo, na CLI, você pode criar uma VM do Azure com o az vm create
comando.
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.
Obtenha mais informações sobre como criar e gerir VMs no módulo Gerir máquinas virtuais com a ferramenta CLI do Azure.
Para obter mais informações sobre como usar a CLI do Azure para criar VMs, consulte Guia de início rápido: criar uma máquina virtual Linux usando a CLI.
Azure PowerShell
O Azure PowerShell é ideal para tarefas interativas e pontuais e/ou para a automatização de tarefas repetitivas.
Nota
O PowerShell é uma shell de várias plataformas que fornece serviços como a janela da shell e a análise de comandos. O Azure PowerShell é um pacote de suplementos adicional que adiciona os comandos específicos do Azure (denominados cmdlets). Pode obter mais informações sobre como instalar e utilizar o Azure PowerShell num módulo de formação separado.
Por exemplo, você pode usar o New-AzVM
cmdlet para criar uma nova 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
Tal como é apresentado aqui, o utilizador fornece vários parâmetros para lidar com o elevado número de definições de configuração da VM disponíveis. A maioria dos parâmetros tem valores razoáveis, pelo que só tem de especificar os parâmetros necessários. Obtenha mais informações sobre como criar e gerir VMs com o Azure PowerShell no módulo Automatizar tarefas do Azure através de scripts com o PowerShell.
Para obter mais informações sobre como usar o PowerShell para criar VMs, consulte Guia de início rápido: criar uma máquina virtual Linux usando o PowerShell.
Terraform
O Azure também tem um provedor Terraform, para que você possa usar facilmente o Terraform para criar e gerenciar suas VMs. Terraform permite a definição, visualização e implantação de infraestrutura em nuvem. Usando Terraform, você cria arquivos de configuração usando a sintaxe HCL. A sintaxe HCL permite especificar 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 na infraestrutura antes que elas sejam implantadas. Depois de verificar as alterações, você aplica o plano de execução para implantar a infraestrutura.
Para obter mais informações, consulte Azure Terraform Provider e Guia de início rápido: usar o Terraform para criar uma VM.
Programação (APIs)
De forma geral, tanto o Azure PowerShell como a CLI do Azure serão boas opções se tiver scripts simples para executar e quiser manter as ferramentas de linha de comandos. É necessária uma abordagem diferente quando envolve cenários mais complexos em que a criação e a gestão de VMs fazem parte de uma aplicação maior, com uma lógica mais complexa.
Pode interagir com todos os tipos de recursos no Azure através de programação.
API REST do Azure
A API REST do Azure fornece aos desenvolvedores operações categorizadas por recurso e a capacidade de criar e gerenciar VMs. As operações são expostas como URIs com métodos HTTP correspondentes (GET
, PUT
, POST
, DELETE
e PATCH
) e, consequentemente, uma resposta igualmente correspondente.
As APIs da Computação do Azure fornecem-lhe acesso programático a máquinas virtuais e aos respetivos recursos de apoio.
Para obter mais informações, consulte a referência da API REST de máquinas virtuais.
SDK do Cliente do Azure
Embora a API REST seja agnóstica em relação à plataforma e à linguagem, na maioria das vezes os desenvolvedores procuram um nível mais alto de abstração. O SDK do Cliente do Azure integra a API REST do Azure, o que facilita a interação dos programadores com o Azure.
Os SDKs do Cliente do Azure estão disponíveis para várias linguagens e estruturas, incluindo . Linguagens baseadas em NET, como C#, Java, Node.js, PHP, Python, Ruby e Go.
Aqui está um trecho de exemplo de código C# para criar uma VM do Azure usando o Microsoft.Azure.Management.Fluent
pacote NuGet.
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();
Aqui está o mesmo trecho em Java usando o SDK 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ê queira configurar e instalar mais software em sua máquina virtual após a implantação inicial. Pretende que esta tarefa utilize configurações específicas, que seja monitorizada e executada automaticamente.
As 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, consulte Extensões e recursos de máquina virtual do Azure.
Serviços de automação do Azure
Poupar tempo, reduzir a ocorrência de erros e aumentar a eficiência são alguns dos desafios de gestão operacional mais importantes com que se pode deparar ao gerir uma infraestrutura remota. Se você tiver vários serviços de infraestrutura, convém considerar o uso de serviços de nível superior no Azure para ajudá-lo a operar a partir de um nível superior.
A Automação do Azure permite integrar serviços que permitem automatizar tarefas de gerenciamento frequentes, demoradas e propensas a erros com facilidade. Estes serviços incluem a automatização de processos, a gestão de configurações e a gestão de atualizações.
Automatização de Processos. Vamos supor que tem uma VM que é monitorizada para um evento de erros específico. Você deseja agir e corrigir o problema assim que ele for relatado. A automação de processos permite que você configure tarefas do observador que podem responder a eventos que podem ocorrer em seu datacenter.
Gestão da Configuração. Talvez queira monitorizar as atualizações de software que fiquem disponíveis para o sistema operativo em execução na sua VM. Existem atualizações específicas que pode querer incluir ou excluir. O gerenciamento de configuração permite que você acompanhe essas atualizações e tome as medidas necessárias. Utilize o Microsoft Endpoint Configuration Manager para gerir os computadores, servidores e dispositivos móveis da sua empresa. Pode alargar este suporte às suas VMs no Azure com o Configuration Manager.
Gestão de Atualizações. Use este serviço para gerenciar atualizações e patches para suas VMs. Com este serviço, pode avaliar o estado das atualizações disponíveis, agendar a instalação e rever os resultados da implementação para verificar se as atualizações foram aplicadas com êxito. A gestão de atualizações incorpora serviços que fornecem a gestão de processos e de configurações. Pode ativar a gestão de atualizações para uma VM diretamente a partir da sua conta de Automatização do Azure. Você também pode habilitar o gerenciamento de atualizações para uma única máquina virtual no painel de máquinas virtuais no portal.
Encerramento automatizado
O desligamento automático é um recurso do Azure que permite que você desligue automaticamente suas VMs de acordo com uma programação. Use o desligamento automático para economizar custos, garantindo que suas VMs não sejam executadas 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, vá para a folha da VM no portal, clique em "Desligamento automático" na seção "Operações" e configure as configurações de desligamento automático de acordo com suas preferências.
Para obter mais informações, consulte Desligamento automático.
Como você pode ver, o Azure fornece várias ferramentas para criar e administrar recursos para que você possa integrar operações de gerenciamento em um processo que funcione para você. Vamos analisar alguns dos outros serviços do Azure para termos a certeza de que os recursos da sua infraestrutura estão a ser executados sem problemas.