Provisionar uma máquina virtual Linux usando a CLI do Azure

Concluído

Você pode instalar a CLI do Azure localmente nos sistemas operacionais Linux, macOS e Windows. Os detalhes da instalação dependem do sistema operacional e, no caso do Linux, também na distribuição.

Observação

Para obter mais informações sobre as opções de instalação do Linux, confira Instalar a CLI do Azure no Linux.

Para usar a CLI do Azure de forma interativa, inicie um shell disponível em seu sistema operacional, como cmd.exe no Windows ou Bash no Linux ou macOS, e emita um comando no prompt de comando. Para automatizar tarefas repetitivas, reúna os comandos da CLI em um script do shell usando a sintaxe de script do shell escolhido e, em seguida, execute o script.

Se você quiser evitar a instalação da CLI do Azure, poderá usar o Azure Cloud Shell. O Azure Cloud Shell é um shell interativo e autenticado que você pode usar para gerenciar recursos do Azure de um navegador da Web. O Azure Cloud Shell pode executar Bash e Azure PowerShell e tem a versão atual da CLI do Azure já pré-instalada. Para acessar o Azure Cloud Shell, abra o link Cloud Shell do Azure em um navegador da Web ou inicie-o no portal do Azure selecionando o ícone de Cloud Shell do Azure ao lado da caixa de texto pesquisa global.

Captura de tela que mostra o ícone Azure Cloud Shell no portal do Azure.

O Azure Cloud Shell fornece o benefício da autenticação interna, que usa as credenciais que você fornece ao acessar sua assinatura do Azure no navegador da Web. Isso elimina a necessidade de executar o comando az login no início de cada sessão, o que é necessário quando você executa a CLI do Azure localmente.

Implantar uma VM Linux usando a CLI do Azure

O processo de provisionamento de uma VM do Azure que executa o Linux usando a CLI do Azure normalmente envolve a seguinte sequência de etapas de alto nível:

  • Identifique uma imagem de VM adequada.
  • Identifique o tamanho de VM adequado.
  • Crie um grupos de recursos.
  • Criar e configurar uma rede virtual.
  • Criar uma VM do Azure.

Dependendo do ambiente e dos requisitos existentes, talvez não seja necessário concluir cada uma das etapas anteriores. Por exemplo, você pode usar um grupo de recursos existente ou uma sub-rede de rede virtual para sua implantação. Além disso, a CLI do Azure dá suporte a uma ampla variedade de configurações padrão, que se aplicam automaticamente se você decidir não atribuir valores explicitamente a algumas das configurações de recurso. Por exemplo, assim como na implantação baseada no portal do Azure, se você não especificar uma rede virtual existente, a CLI do Azure provisionará automaticamente uma para você. Neste módulo, você dependerá das configurações padrão da CLI do Azure e ignorará o processo de criação de uma rede virtual.

Observação

Para obter informações sobre a implementação de redes virtuais usando a CLI do Azure, veja Início Rápido: Use a CLI do Azure para criar uma rede virtual.

Identificar uma imagem de VM adequada

Antes de iniciar o processo de provisionamento, primeiro você precisa determinar a imagem da VM que deseja usar. Você também deve verificar a disponibilidade da imagem na região do Azure que hospedará sua implantação.

Para listar as regiões do Azure disponíveis em sua assinatura, execute o seguinte comando em uma sessão Bash no painel Cloud Shell do Azure:

az account list-locations --output table

Examine a saída e identifique o valor na coluna Nome da região que você pretende usar. Suponha que você escolheu a região leste dos EUA como seu destino, de modo que o nome seja eastus.

Para identificar a imagem adequada, você precisará determinar seu editor, oferta e sku. Para restringir a lista de opções disponíveis, liste os editores que não são da Microsoft para a região identificada anteriormente executando o seguinte comando:

az vm image list-publishers --location eastus --query [].name --output tsv | grep -v "Microsoft" | more

Observação

A lista é bastante extensa, portanto, você deve garantir que você limite a saída para o buffer de sessão disponível.

Suponha que você escolheu Canonical. Em seguida, identifique as ofertas disponíveis desse editor executando o seguinte comando:

az vm image list-offers --location eastus --publisher Canonical --query [].name --output tsv

Suponha que você escolheu 0001-com-ubuntu-server-jammy. Em seguida, execute o seguinte comando para identificar SKUs disponíveis com essa oferta executando o seguinte comando:

az vm image list-skus --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-focal --query [].name --output tsv

Observação

Recentemente, a Canonical vem alterando os nomes das ofertas. Antes do Ubuntu 20.04, o nome da oferta era UbuntuServer. Para o Ubuntu 20.04 o nome da oferta é 0001-com-ubuntu-server-focal, e para Ubuntu 22.04 é 0001-com-ubuntu-server-jammy.

Para implantar uma VM do Azure usando uma imagem específica, você precisa determinar o valor de sua propriedade Urn. Este valor consiste no editor, a oferta, o SKU e, opcionalmente, um número de versão que identifica unicamente a imagem. Você também pode definir o número de versão como mais recente, que designa a versão mais recente da distribuição. Para exibir o valor da propriedade Urn para todas as imagens 22_04-lts do Ubuntu na região Leste dos EUA, execute o seguinte comando:

az vm image list --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-jammy --sku 22_04-lts --all --output table

Observação

Você pode usar a propriedade UrnAlias para uma abordagem mais simples (embora muito menos flexível) para designar uma imagem a ser usada durante a implantação. Essa propriedade está prontamente disponível para as imagens mais comuns, e você pode recuperar seus valores executando o comando az vm image list --output table da CLI do Azure. Por exemplo, o UrnAlias Ubuntu2204 corresponde à imagem Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest.

Identificar o tamanho de VM adequado

Além da disponibilidade da imagem, você também deve garantir que o tamanho da VM que você pretende usar esteja disponível na região do Azure que hospedará sua implantação. Para confirmar isso, execute o comando a seguir:

az vm list-sizes --location eastus --output table

Identifique o tamanho da VM adequado para sua implantação de exemplo na listagem e anote o valor na coluna Nome. Você precisará inserir o nome no formato idêntico ao executar o comando da CLI do Azure que inicia o provisionamento de VM do Azure. Suponha que você escolheu Standard_F4s.

Importante

Antes de prosseguir, verifique se esse tamanho de VM está disponível na região do Azure que você está direcionando e, se necessário, ajuste os valores dos parâmetros nos comandos subsequentes adequadamente.

Criar um grupo de recursos

Depois de identificar a imagem e o tamanho da VM do Azure, agora você pode iniciar o processo de provisionamento. Comece criando um grupo de recursos para hospedar a VM do Azure e seus recursos dependentes. Se você quiser criar um grupo de recursos, use o comando az group create. Esse comando exige que você especifique o valor dos parâmetros name e location, que designa o nome do grupo de recursos e a região de destino do Azure, respectivamente.

az group create --name rg_lnx-cli --location eastus

A saída do comando deve se parecer com o exemplo a seguir:

{
  "id": "/subscriptions/fd7edadd-187f-41dd-a5df-f80bad63c167/resourceGroups/sample-RG",
  "location": "eastus",
  "managedBy": null,
  "name": "rg_lnx-cli",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

Criar uma VM do Azure

Para criar uma VM, use o comando az vm create. Esse comando dá suporte a uma ampla variedade de parâmetros, incluindo a imagem do sistema operacional, o tamanho do disco e as credenciais administrativas. No exemplo a seguir, o comando az vm create aciona a implantação de uma VM do Azure chamada sample-cli-vm0, que hospeda a versão mais recente do Ubuntu 22_04-lts-gen2 SKU. O processo de provisionamento configura uma conta de usuário administrativo chamada azureuser com autenticação baseada em um par de chaves SSH. As chaves pública e privada são geradas e armazenadas localmente em seu local padrão (~/.ssh) para permitir o acesso SSH à VM do Azure. Use o exemplo de código a seguir para criar uma VM do Azure:

az vm create \
    --resource-group rg_lnx-cli \
    --name lnx-cli-vm \
    --image Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest \
    --size Standard_F4s \
    --admin-username azureuser \
    --generate-ssh-keys

Observação

O --size é opcional. Se você decidir excluí-lo, o tamanho resultante dependerá da imagem escolhida.

A VM do Azure começará a ser executada logo depois, geralmente dentro de alguns minutos. A saída do comando da CLI do Azure incluirá informações formatadas em JSON sobre a VM do Azure implantada recentemente:

{
  "fqdns": "",
  "id": "/subscriptions/fd7edadd-187f-0000-0000-000000000000/resourceGroups/rg_lnx-cli/providers/Microsoft.Compute/virtualMachines/lnx-cli-vm",
  "location": "eastus",
  "macAddress": "00-0D-3A-8C-C6-AE",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "20.51.149.212",
  "resourceGroup": "rg_lnx-cli",
  "zones": ""
}

Neste ponto, você poderá se conectar à VM do Azure executando o seguinte comando (depois de substituir o espaço reservado <public_ip_address> pelo endereço IP identificado na saída gerenciada pela CLI do Azure) do computador onde a chave privada é armazenada:

ssh azureuser@<public_ip_address>