Tutorial: Criar e Gerir VMs do Linux com a CLI do Azure
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
As máquinas virtuais do Azure proporcionam um ambiente informático totalmente configurável e flexível. Este tutorial abrange itens de implementação básicos de máquinas virtuais do Azure, como selecionar um tamanho de VM, selecionar uma imagem de VM e implementar uma VM. Sabe como:
- Criar e ligar a uma VM
- Selecionar e utilizar imagens de VM
- Ver e utilizar tamanhos específicos de VM
- Redimensionar uma VM
- Visualizar e compreender o estado de uma VM
Este tutorial usa a CLI no Azure Cloud Shell, que é constantemente atualizado para a versão mais recente.
Se optar por instalar e utilizar a CLI localmente, este tutorial exigirá que execute a versão 2.0.30 ou posterior da CLI do Azure. Executar az --version
para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).
Criar grupo de recursos
Crie um grupo de recursos com o comando az group create.
Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos. Um grupo de recursos tem de ser criado antes de uma máquina virtual. Neste exemplo, um grupo de recursos chamado myResourceGroupVM é criado na região eastus2 .
az group create --name myResourceGroupVM --location eastus2
O grupo de recursos é especificado ao criar ou modificar uma VM, o que pode ser visto ao longo deste tutorial.
Criar a máquina virtual
Crie uma máquina virtual com o comando az vm create.
Quando cria uma máquina virtual, várias opções estão disponíveis, como a imagem do sistema operativo, as credenciais administrativas e o dimensionamento do disco. O exemplo a seguir cria uma VM chamada myVM que executa o SUSE Linux Enterprise Server (SLES). Uma conta de utilizador chamada azureuser é criada na VM, as chaves SSH são geradas caso não existam na localização predefinida da chave (~/.ssh):
az vm create \
--resource-group myResourceGroupVM \
--name myVM \
--image SuseSles15SP3 \
--public-ip-sku Standard \
--admin-username azureuser \
--generate-ssh-keys
A criação da VM pode demorar alguns minutos. Quando a VM tiver sido criada, a CLI do Azure produz informações sobre a VM. Anote o publicIpAddress
, esse endereço pode ser usado para acessar a máquina virtual.
{
"fqdns": "",
"id": "/subscriptions/d5b9d4b7-6fc1-0000-0000-000000000000/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "eastus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "52.174.34.95",
"resourceGroup": "myResourceGroupVM"
}
Ligar à VM
Pode agora ligar à VM com o SSH no Azure Cloud Shell ou a partir do seu computador local. Substitua o endereço IP de exemplo pelo publicIpAddress
que anotou no passo anterior.
ssh azureuser@52.174.34.95
Assim que tiver sessão iniciada na VM, pode instalar e configurar as aplicações. Quando tiver terminado, feche a sessão SSH como normalmente:
exit
Compreender as imagens de VM
O Azure Marketplace inclui muitas imagens que podem ser usadas para criar VMs. Nos passos anteriores, uma máquina virtual foi criada com uma imagem de Ubuntu. Nesta etapa, a CLI do Azure é usada para pesquisar no mercado uma imagem do Ubuntu, que é usada para implantar uma segunda máquina virtual.
Para ver uma lista das imagens mais frequentemente utilizadas, utilize o comando az vm image list.
az vm image list --output table
A saída do comando devolve as imagens de VM mais populares no Azure.
Architecture Offer Publisher Sku Urn UrnAlias Version
-------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ----------------------- ---------
x64 debian-10 Debian 10 Debian:debian-10:10:latest Debian latest
x64 flatcar-container-linux-free kinvolk stable kinvolk:flatcar-container-linux-free:stable:latest Flatcar latest
x64 opensuse-leap-15-3 SUSE gen2 SUSE:opensuse-leap-15-3:gen2:latest openSUSE-Leap latest
x64 RHEL RedHat 7-LVM RedHat:RHEL:7-LVM:latest RHEL latest
x64 sles-15-sp3 SUSE gen2 SUSE:sles-15-sp3:gen2:latest SLES latest
x64 0001-com-ubuntu-server-jammy Canonical 18.04-LTS Canonical:UbuntuServer:18.04-LTS:latest UbuntuLTS latest
x64 WindowsServer MicrosoftWindowsServer 2022-Datacenter MicrosoftWindowsServer:WindowsServer:2022-Datacenter:latest Win2022Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition-core MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest Win2022AzureEditionCore latest
x64 WindowsServer MicrosoftWindowsServer 2019-Datacenter MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest Win2019Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2016-Datacenter MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest Win2016Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-R2-Datacenter MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest Win2012R2Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-Datacenter MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest Win2012Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2008-R2-SP1 MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest Win2008R2SP1 latest
Uma lista completa pode ser vista adicionando o --all
parâmetro. Também é possível filtrar a lista de imagens por --publisher
ou –-offer
. Neste exemplo, a lista é filtrada para todas as imagens, publicadas pela OpenLogic, com uma oferta que corresponde a 0001-com-ubuntu-server-jammy.
az vm image list --offer 0001-com-ubuntu-server-jammy --publisher Canonical --all --output table
Exemplo de saída parcial:
Architecture Offer Publisher Sku Urn Version
-------------- --------------------------------- ----------- --------------- ------------------------------------------------------------------------ ---------------
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202204200 22.04.202204200
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205060 22.04.202205060
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205280 22.04.202205280
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206040 22.04.202206040
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206090 22.04.202206090
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206160 22.04.202206160
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206220 22.04.202206220
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202207060 22.04.202207060
Nota
A Canonical alterou os nomes das ofertas que usa para as versões mais recentes. Antes do Ubuntu 20.04, o nome da oferta é UbuntuServer. Para o Ubuntu 20.04 o nome da oferta é 0001-com-ubuntu-server-focal
e para o Ubuntu 22.04 é 0001-com-ubuntu-server-jammy
.
Para implementar uma VM com uma imagem específica, anote o valor na coluna Urn, que consiste no publicador, oferta, SKU e, opcionalmente, um número de versão para identificar a imagem. Ao especificar a imagem, o número da versão da imagem pode ser substituído por latest
, que seleciona a versão mais recente da distribuição. Neste exemplo, o --image
parâmetro é usado para especificar a versão mais recente de um Ubuntu 22.04.
az vm create --resource-group myResourceGroupVM --name myVM2 --image Canonical:0001-com-ubnutu-server-jammy:22_04-lts:latest --generate-ssh-keys
Compreender os tamanhos de VM
Um tamanho de máquina virtual determina a quantidade de recursos de computação, como a CPU, memória e GPU que ficam disponíveis para a máquina virtual. As máquinas virtuais devem ser dimensionadas de forma adequada para a carga de trabalho esperada. Se a carga de trabalho aumentar, uma máquina virtual existente pode ser redimensionada.
Tamanhos de VMs
A tabela seguinte categoriza tamanhos em casos de utilização.
Tipo | Description |
---|---|
Fins gerais | CPU-para-memória equilibrada. Ideal para desenvolvimento/teste e aplicações e soluções de dados pequenas a médias. |
Com otimização de computação | CPU-para-memória elevada. É adequado para aplicações de tráfego médio, dispositivos de rede e processos em lote. |
Com otimização de memória | Memória-para-núcleo elevada. É ideal para bases de dados relacionais, caches médias a grandes e análise dentro da memória. |
Com otimização de armazenamento | Débito e E/S de disco elevados. Ideal para bases de dados de Macrodados, SQL e NoSQL. |
GPU | VMs especializadas destinadas a composição gráfica e edição de vídeo exigentes. |
Elevado desempenho | As nossas mais avançadas VMs com CPU, com interfaces de rede de alto débito (RDMA) opcionais. |
Localizar todos os tamanhos de VM disponíveis
Para ver uma lista de tamanhos de VM disponíveis numa região específica, utilize o comando az vm list-sizes.
az vm list-sizes --location eastus2 --output table
Exemplo de saída parcial:
MaxDataDiskCount MemoryInMb Name NumberOfCores OsDiskSizeInMb ResourceDiskSizeInMb
------------------ ------------ ---------------------- --------------- ---------------- ----------------------
4 8192 Standard_D2ds_v4 2 1047552 76800
8 16384 Standard_D4ds_v4 4 1047552 153600
16 32768 Standard_D8ds_v4 8 1047552 307200
32 65536 Standard_D16ds_v4 16 1047552 614400
32 131072 Standard_D32ds_v4 32 1047552 1228800
32 196608 Standard_D48ds_v4 48 1047552 1843200
32 262144 Standard_D64ds_v4 64 1047552 2457600
4 8192 Standard_D2ds_v5 2 1047552 76800
8 16384 Standard_D4ds_v5 4 1047552 153600
16 32768 Standard_D8ds_v5 8 1047552 307200
32 65536 Standard_D16ds_v5 16 1047552 614400
32 131072 Standard_D32ds_v5 32 1047552 1228800
32 196608 Standard_D48ds_v5 48 1047552 1843200
32 262144 Standard_D64ds_v5 64 1047552 2457600
32 393216 Standard_D96ds_v5 96 1047552 3686400
Criar uma VM com tamanho específico
No exemplo anterior de criação de VM, não foi fornecido um tamanho, resultando num tamanho predefinido. Um tamanho de VM pode ser selecionado no momento da criação usando az vm create e o --size
parâmetro.
az vm create \
--resource-group myResourceGroupVM \
--name myVM3 \
--image SuseSles15SP3 \
--size Standard_D2ds_v4 \
--generate-ssh-keys
Redimensionar uma VM
Depois de implementar uma VM, esta pode ser redimensionada para aumentar ou diminuir a alocação de recursos. Pode ver o tamanho atual de uma VM com az vm show:
az vm show --resource-group myResourceGroupVM --name myVM --query hardwareProfile.vmSize
Antes de redimensionar uma VM, verifique se o tamanho pretendido está disponível no cluster do Azure atual. O comando az vm list-vm-resize-options comando devolve a lista de tamanhos.
az vm list-vm-resize-options --resource-group myResourceGroupVM --name myVM --query [].name
Se o tamanho pretendido estiver disponível, a VM pode ser redimensionada de um estado ligado, no entanto, é reiniciada durante a operação. Utilize o comando az vm resize para efetuar o redimensionamento.
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_D4s_v3
Se o tamanho pretendido não estiver no cluster atual, a VM tem de ser desalocada antes de a operação de redimensionamento poder ocorrer. Utilize o comando az vm deallocate para parar e desalocar a VM. Tenha em atenção que, quando a VM for novamente ligada, quaisquer dados no disco temporário poderão ser removidos. O endereço IP público também é alterado, a menos que esteja a ser utilizado um endereço IP estático.
az vm deallocate --resource-group myResourceGroupVM --name myVM
Depois de desalocada, pode ocorrer o redimensionamento.
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_GS1
Depois do redimensionamento, a VM pode ser iniciada.
az vm start --resource-group myResourceGroupVM --name myVM
Estados de energia da VM
Uma VM do Azure pode ter um de vários estados de energia. Este estado representa o estado atual da VM do ponto de vista do hipervisor.
Estados de energia
Estado de Energia | Description |
---|---|
A iniciar | Indica que a máquina virtual está a iniciar. |
Em Execução | Indica que a máquina virtual está em execução. |
A parar | Indica que a máquina virtual está a ser parada. |
Parado | Indica que a máquina virtual está parada. As máquinas virtuais no estado de paragem continuam a incorrer em custos de computação. |
A desalocar | Indica que a máquina virtual está a ser desalocada. |
Desalocada | Indica que a máquina virtual foi removida do hipervisor, mas continua disponível no painel de controlo. As máquinas virtuais no estado Desalocada não incorrem em custos de computação. |
- | Indica que o estado de energia da máquina virtual é desconhecido. |
Localizar o estado de energia
Para obter o estado de uma VM específica, utilize o comando az vm get-instance-view. Certifique-se de que especifica um nome válido para a máquina virtual e o grupo de recursos.
az vm get-instance-view \
--name myVM \
--resource-group myResourceGroupVM \
--query instanceView.statuses[1] --output table
Saída:
Code Level DisplayStatus
------------------ ------- ---------------
PowerState/running Info VM running
Para recuperar o estado de energia de todas as VMs em sua assinatura, use a API Máquinas Virtuais - Listar Todas as APIs com status de parâmetro definido como true.
Tarefas de gestão
Durante o ciclo de vida de uma máquina virtual, poderá querer executar tarefas de gestão, como iniciar, parar ou eliminar uma máquina virtual. Além disso, pode querer criar scripts para automatizar tarefas repetitivas ou complexas. Ao utilizar a CLI do Azure, muitas tarefas comuns de gestão podem ser executadas na linha de comandos ou em scripts.
Obter endereço IP
Este comando devolve os endereços IP privados e públicos de uma máquina virtual.
az vm list-ip-addresses --resource-group myResourceGroupVM --name myVM --output table
Parar máquina virtual
az vm stop --resource-group myResourceGroupVM --name myVM
Iniciar máquina virtual
az vm start --resource-group myResourceGroupVM --name myVM
Excluindo recursos de VM
Dependendo de como você exclui uma VM, ela só pode excluir o recurso de VM, não os recursos de rede e disco. Você pode alterar o comportamento padrão para excluir outros recursos ao excluir a VM. Para obter mais informações, consulte Excluir uma VM e recursos anexados.
A exclusão de um grupo de recursos também exclui todos os recursos do grupo de recursos, como a VM, a rede virtual e o disco. O parâmetro --no-wait
devolve o controlo à linha de comandos, sem aguardar a conclusão da operação. O parâmetro --yes
confirma que pretende eliminar os recursos sem uma linha de comandos adicional para fazê-lo.
az group delete --name myResourceGroupVM --no-wait --yes
Próximos passos
Neste tutorial, aprendeu sobre a criação e gestão básica de VMs, como:
- Criar e ligar a uma VM
- Selecionar e utilizar imagens de VM
- Ver e utilizar tamanhos específicos de VM
- Redimensionar uma VM
- Visualizar e compreender o estado de uma VM
Avance para o próximo tutorial para saber mais sobre os discos de VM.