Partilhar via


Tutorial: Criar e gerenciar VMs 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 aborda itens básicos de implantação de máquina virtual do Azure, como a seleção de um tamanho de VM, a seleção de uma imagem de VM e a implantação de uma VM. Você aprende a:

  • 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

Abaixo, declaramos variáveis de ambiente. Um sufixo aleatório é anexado a nomes de recursos que precisam ser exclusivos para cada implantação.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="eastus2"
export MY_RESOURCE_GROUP_NAME="myResourceGroupVM$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION

Resultados:

{
  "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupVMxxx",
  "location": "eastus2",
  "name": "myResourceGroupVMxxx",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. 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 .

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

Quando você cria uma máquina virtual, várias opções estão disponíveis, como imagem do sistema operacional, dimensionamento de disco e credenciais administrativas. O exemplo a seguir cria uma VM chamada myVM que executa o SUSE Linux Enterprise Server (SLES). Uma conta de usuário chamada azureuser é criada na VM e as chaves SSH são geradas se não existirem no local da chave padrão (~/.ssh).

export MY_VM_NAME="myVM$RANDOM_SUFFIX"
az vm create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $MY_VM_NAME \
    --image SuseSles15SP5 \
    --public-ip-sku Standard \
    --admin-username azureuser \
    --generate-ssh-keys

Pode levar alguns minutos para criar a VM. Depois que a VM tiver sido criada, a CLI do Azure produzirá informações sobre a VM. Tome nota do publicIpAddressendereço : este endereço pode ser usado para acessar a máquina virtual.

{
  "fqdns": "",
  "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupVMxxx/providers/Microsoft.Compute/virtualMachines/myVMxxx",
  "location": "eastus2",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "52.174.34.95",
  "resourceGroup": "myResourceGroupVMxxx"
}

Ligar à VM

Agora você pode se conectar à VM com SSH no Azure Cloud Shell ou do seu computador local. Substitua o endereço IP de exemplo pelo publicIpAddress indicado na etapa anterior.

Para se conectar à VM, primeiro recupere o endereço IP público usando a CLI do Azure. Execute o seguinte comando para armazenar o endereço IP em uma variável: export IP_ADDRESS=$(az vm show --show-details --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query publicIps --output tsv)

Depois de ter o endereço IP, use SSH para se conectar à VM. O comando a seguir se conecta à VM usando a azureuser conta e o endereço IP recuperado: ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS

Compreender imagens de VM

O Azure Marketplace inclui muitas imagens que podem ser usadas para criar VMs. Nas etapas anteriores, uma máquina virtual foi criada usando uma imagem SUSE. 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 usadas, use o comando az vm image list.

az vm image list --output table

A saída do comando retorna 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. A lista de imagens também pode ser filtrada por --publisher ou –-offer. Neste exemplo, a lista é filtrada para incluir todas as imagens publicadas pela OpenLogic, com uma oferta que corresponda 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

Observação

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 implantar uma VM usando uma imagem específica, anote o valor na coluna Urn , que consiste no editor, 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.

export MY_VM2_NAME="myVM2$RANDOM_SUFFIX"
az vm create --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM2_NAME --image Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest --generate-ssh-keys

Entender os tamanhos de VM

Um tamanho de máquina virtual determina a quantidade de recursos de computação, como CPU, GPU e memória, que são disponibilizados para a máquina virtual. As máquinas virtuais precisam ser dimensionadas adequadamente para a carga de trabalho esperada. Se a carga de trabalho aumentar, uma máquina virtual existente poderá ser redimensionada.

Tamanhos de VMs

A tabela seguinte categoriza tamanhos em casos de utilização.

Tipo Descrição
Fins gerais Equilíbrio entre CPU e memória. Ideal para desenvolvimento/teste e aplicações e soluções de dados pequenas a médias.
Computação otimizada Relação CPU para memória elevada. É adequado para aplicações de tráfego médio, dispositivos de rede e processos em lote.
Memória otimizada Memória-para-núcleo elevada. É ideal para bases de dados relacionais, caches médias a grandes e análise dentro da memória.
armazenamento otimizado Débito e E/S de disco elevados. Ideal para bases de dados de Big Data, 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 em uma região específica, use o comando az vm list-sizes .

az vm list-sizes --location $REGION --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 VM com tamanho específico

No exemplo de criação de VM anterior, um tamanho não foi fornecido, o que resulta em um tamanho padrão. Um tamanho de VM pode ser selecionado no momento da criação usando az vm create e o --size parâmetro.

export MY_VM3_NAME="myVM3$RANDOM_SUFFIX"
az vm create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $MY_VM3_NAME \
    --image SuseSles15SP5 \
    --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. Você pode visualizar o tamanho atual de uma VM com az vm show:

az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query hardwareProfile.vmSize

Antes de redimensionar uma VM, verifique se o tamanho desejado está disponível no cluster atual do Azure. O comando az vm list-vm-resize-options retorna a lista de tamanhos.

az vm list-vm-resize-options --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query [].name

Se o tamanho desejado estiver disponível, a VM pode ser redimensionada a partir de um estado ligado, embora seja reinicializada durante a operação. Use o comando az vm resize para executar o redimensionamento.

az vm resize --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --size Standard_D4s_v3

Se o tamanho desejado não estiver disponível no cluster atual, a VM precisará ser desalocada antes que a operação de redimensionamento possa ocorrer. Use o comando az vm deallocate para parar e desalocar a VM. Observe que quando a VM é ligada novamente, todos os dados no disco temporário podem ser removidos. O endereço IP público também muda, a menos que um endereço IP estático esteja sendo usado. Uma vez desalocado, o redimensionamento pode ocorrer.

Após o redimensionamento, a VM pode ser iniciada.

az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

Estados de potência da VM

Uma VM do Azure pode ter um de vários estados de energia. Esse estado representa o estado atual da VM do ponto de vista do hipervisor.

Estados de energia

Estado de Energia Descrição
Início Indica que a máquina virtual está sendo iniciada.
Correr Indica que a máquina virtual está em execução.
Parar Indica que a máquina virtual está sendo interrompida.
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á sendo deslocalizada.
Desalocada Indica que a máquina virtual foi removida do hipervisor, mas ainda está disponível no plano de controle. As máquinas virtuais no estado Desalocado não incorrem em encargos de computação.
- Indica que o estado de energia da máquina virtual é desconhecido.

Localizar o estado de energia

Para recuperar o estado de uma VM específica, use o comando az vm get-instance-view . Certifique-se de especificar um nome válido para uma máquina virtual e um grupo de recursos.

az vm get-instance-view \
    --name $MY_VM_NAME \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --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 na sua subscrição, use a API Máquinas Virtuais - Listar Todas com o parâmetro statusOnly definido como true.

Tarefas de gestão

Durante o ciclo de vida de uma máquina virtual, convém executar tarefas de gerenciamento, como iniciar, parar ou excluir uma máquina virtual. Além disso, pode querer criar scripts para automatizar tarefas repetitivas ou complexas. Usando a CLI do Azure, muitas tarefas de gerenciamento comuns podem ser executadas a partir da linha de comando ou em scripts.

Obter endereço IP

Este comando retorna os endereços IP privados e públicos de uma máquina virtual.

az vm list-ip-addresses --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --output table

Parar máquina virtual

az vm stop --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

Iniciar máquina virtual

az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

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.

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.