Solucionar problemas de implantação do Resource Manager com a criação de uma nova máquina virtual Linux no Azure

Observação

O CentOS referenciado neste artigo é uma distribuição do Linux e chegará ao EOL (End Of Life). Considere seu uso e planeje de acordo. Para obter mais informações, confira Diretrizes de Fim de Vida do CentOS.

Ao tentar criar uma nova VM (máquina virtual) do Azure, os erros comuns encontrados são falhas de provisionamento ou falhas de alocação.

  • Uma falha de provisionamento ocorre quando a imagem do sistema operacional falha ao carregar devido a etapas preparatórias incorretas ou devido à seleção de configurações erradas durante a captura da imagem do portal.
  • Ocorre uma falha de alocação quando o cluster ou a região não tem recursos disponíveis ou não pode suportar o tamanho de VM solicitado.

Se o seu problema do Azure não for abordado neste artigo, visite os fóruns do Azure em MSDN e Stack Overflow. Você pode postar seu problema nesses fóruns ou postar em @AzureSupport no Twitter. Você também pode enviar uma solicitação de suporte do Azure. Para enviar uma solicitação de suporte, na página Suporte do Azure, selecione Obter suporte.

Solução de problemas de provisionamento

Um cenário típico de falha de provisionamento ocorre depois que você cria uma imagem personalizada e, em seguida, implanta uma VM a partir dela, você experimenta até 40 minutos em que o status da VM está mostrando creating e você vê esta mensagem de erro:

Provisioning state Provisioning failed. 

OS Provisioning for VM 'sentilo' did not finish in the allotted time. 

The VM may still finish provisioning successfully. Please check provisioning state later. 

Also, make sure the image has been properly prepared (generalized). * Instructions for Windows: https://azure.microsoft.com/documentation/articles/virtual-machines-windows-upload-image/ * Instructions for Linux: https://azure.microsoft.com/documentation/articles/virtual-machines-linux-capture-image/.

Ou:

Deployment failed. Correlation ID: f9dcb33a-4e6e-45c5-9c9d-b29dd73da2e0. {
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "OSProvisioningInternalError",
        "message": "OS Provisioning failed for VM 'iWishThisWouldCreateVM01' due to an internal error: The VM encountered an error during deployment. Please visit https://aka.ms/linuxprovisioningerror for more information on remediation."
      }
    ]
  }
}

Em seguida, você vê o estado da VM marcado como failed.

Por que ocorrem falhas de provisionamento?

Comumente, as falhas de provisionamento podem ocorrer por vários motivos, como:

  • Provisionamento ausente/agente configurado incorretamente

    • Você precisará garantir que um agente esteja presente e funcionando corretamente, você deve usar cloud-init ou, se sua imagem não suportar isso, você pode revisar estas etapas.
  • Configuração de imagem incorreta

Solucionar problemas de falhas de provisionamento

Para identificar o motivo da falha no provisionamento, você precisará começar com o log serial, disponível para você implantando a VM com o diagnóstico de inicialização do Azure.

Você precisará implantar uma nova VM com diagnóstico de inicialização ativado para a VM com a imagem com falha para acessar eventos de provisionamento no log serial.

# create resource group
resourceGroup=myBrokenImageRG
location=westus2
az group create --name $resourceGroup --location $location

# create storage account

storageacct=mydiagdata$RANDOM

az storage account create \
  --resource-group $resourceGroup \
  --name $storageacct \
  --sku Standard_LRS \
  --location $location

# create VM
vmName=iWishThisWouldCreateVM01
brokenImageName=<ResourceID of brokenImage>
sshPubkeyPath=""

az vm create \
    --resource-group $resourceGroup \
    --name $vmName \
    --image $brokenImageName \
    --admin-username azadmin \
    --ssh-key-value $sshPubkeyPath \
    --boot-diagnostics-storage $storageacct

Para visualizar o log serial, você pode acessar o Portal, ou executar o comando abaixo para baixar o log 'serialConsoleLogBlobUri':

az vm boot-diagnostics get-boot-log-uris --name $vmName --resource-group $resourceGroup

Compreendendo o log serial para eventos do sistema e eventos de provisionamento

Quando a VM é criada pela primeira vez, o cloud-init inicializa e tenta montar um ISO, estabelecer conectividade de rede, definir as propriedades passadas durante a criação da VM, montar o disco efêmero (em tamanhos de VM suportados) e sinalizar de volta para a plataforma Azure que a configuração inicial do SO foi concluída.

Eventos do sistema e informações importantes Registro Serial Observações
Liberação do kernel e versão do kernel [ 0.000000] Linux version 5.4.0-1031-azure (buildd@lcy01-amd64-021) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #32~18.04.1-Ubuntu SMP Tue Oct 6 10:03:22 UTC 2020 (Ubuntu 5.4.0-1031.32~18.04.1-azure 5.4.65) Aparece no início do log serial.
Opções de linha de comando Kernel [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-1031-azure root=UUID=8c0a4742-2f51-40b4-b659-357cfb0bb2a3 ro console=tty1 console=ttyS0 earlyprintk=ttyS0
[ 0.503399] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-1031-azure root=UUID=8c0a4742-2f51-40b4-b659-357cfb0bb2a3 ro console=tty1 console=ttyS0 earlyprintk=ttyS0
Aparece no início do log serial. Pesquise por command line:.
Versão do Systemd [ 8.626739] systemd[1]: systemd 237 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid) Pesquise por systemd.
Metas do Systemd atingidas [ [0;32m OK [0m] Reached target Swap.
[ [0;32m OK [0m] Reached target User and Group Name Lookups.
[ [0;32m OK [0m] Reached target Slices.
[ [0;32m OK [0m] Reached target Local File Systems (Pre).
[ [0;32m OK [0m] Reached target Local Encrypted Volumes.
[ [0;32m OK [0m] Reached target Local File Systems.
[ [0;32m OK [0m] Reached target System Time Synchronized.
[ [0;32m OK [0m] Reached target Network (Pre).
[ [0;32m OK [0m] Reached target Network.
[ [0;32m OK [0m] Reached target Host and Network Name Lookups.
[ [0;32m OK [0m] Reached target Cloud-config availability.
[ [0;32m OK [0m] Reached target System Initialization
[ [0;32m OK [0m] Reached target Timers.
[ [0;32m OK [0m] Reached target Paths.
[ [0;32m OK [0m] Reached target Network is Online.
[ [0;32m OK [0m] Reached target Remote File Systems (Pre).
[ [0;32m OK [0m] Reached target Remote File Systems.
[ [0;32m OK [0m] Reached target Sockets.
[ [0;32m OK [0m] Reached target Basic System.
[ [0;32m OK [0m] Reached target Login Prompts.
Pesquise por Reached target.
Alvos de rede systemd comuns em diferentes distros [ [0;32m OK [0m] Reached target Network (Pre).
[ [0;32m OK [0m] Reached target Network.
[ [0;32m OK [0m] Reached target Network is Online.
Pesquise por Reached target Network.
Estado de rede detalhado e metas de rede para Ubuntu e distribuições em que a rede do sistema é gerenciada por systemd-network. Starting Network Time Synchronization...
[ [0;32m OK [0m] Started Network Time Synchronization.
Starting Initial cloud-init job (pre-networking)...
[ [0;32m OK [0m] Started Initial cloud-init job (pre-networking).
[ [0;32m OK [0m] Reached target Network (Pre).
Starting Network Service...
[ [0;32m OK [0m] Started Network Service.
Starting Wait for Network to be Configured...
Starting Network Name Resolution...
[ [0;32m OK [0m] Started Network Name Resolution.
[ [0;32m OK [0m] Reached target Network.
[ [0;32m OK [0m] Reached target Host and Network Name Lookups.
[ [0;32m OK [0m] Started Wait for Network to be Configured.
[ [0;32m OK [0m] Reached target Network is Online.
Starting Dispatcher daemon for systemd-networkd...
[ [0;32m OK [0m] Started Dispatcher daemon for systemd-networkd.
Pesquise por network ou networkd.
Estado de rede detalhado e metas de rede para RHEL/CentOS e distribuições em que a rede do sistema é gerenciada por Network Manager. Starting Read and set NIS domainname from /etc/sysconfig/network...
[ [32m OK [0m] Started Read and set NIS domainname from /etc/sysconfig/network.
Starting Import network configuration from initramfs...
[ [32m OK [0m] Started Import network configuration from initramfs.
Starting Initial cloud-init job (pre-networking)...
[ [32m OK [0m] Started Initial cloud-init job (pre-networking).
[ [32m OK [0m] Reached target Network (Pre).
Starting Network Manager...
[ [32m OK [0m] Started Network Manager.
Starting Network Manager Wait Online...
Starting Network Manager Script Dispatcher Service...
[ [32m OK [0m] Started Network Manager Script Dispatcher Service.
[ [32m OK [0m] Started Network Manager Wait Online.
Starting LSB: Bring up/down networking...
[ [32m OK [0m] Started LSB: Bring up/down networking.
[ [32m OK [0m] Reached target Network.
[ [32m OK [0m] Reached target Network is Online.
Pesquise por network ou Network Manager.
Estado de rede detalhado e destinos de rede para SUSE/SLES e distribuições em que a rede do sistema é gerenciada por Wicked. Starting Initial cloud-init job (pre-networking)...
[ [0;32m OK [0m] Reached target Host and Network Name Lookups.
[ [0;32m OK [0m] Started Initial cloud-init job (pre-networking).
[ [0;32m OK [0m] Reached target Network (Pre).
Starting wicked DHCPv6 supplicant service...
Starting wicked DHCPv4 supplicant service...
Starting wicked AutoIPv4 supplicant service...
[ [0;32m OK [0m] Started wicked DHCPv6 supplicant service.
[ [0;32m OK [0m] Started wicked DHCPv4 supplicant service.
[ [0;32m OK [0m] Started wicked AutoIPv4 supplicant service.
Starting wicked network management service daemon...
[ [0;32m OK [0m] Started wicked network management service daemon.
Starting wicked network nanny service...
[ [0;32m OK [0m] Started wicked network nanny service.
Starting wicked managed network interfaces...
[ [0;31m* [0;1;31m* [0m [0;31m* [0m] A start job is running for wicked m…etwork interfaces (22s / no limit)
[K[ [0;31m* [0;1;31m* [0m [0;31m* [0m] A start job is running for wicked m…etwork interfaces (28s / no limit)
[K[ [0;31m* [0;1;31m* [0m [0;31m* [0m] A start job is running for wicked m…etwork interfaces (32s / no limit)
[K[ [0;32m OK [0m] Started wicked managed network interfaces.
[ [0;32m OK [0m] Reached target Network.
[ [0;32m OK [0m] Reached target Network is Online.
Pesquise por network ou wicked.
A inicialização alcançou longe o suficiente para iniciar o cloud-init? Starting Initial cloud-init job (pre-networking)...
Starting Initial cloud-init job (metadata service crawler)...
Pesquise por Starting Initial cloud-init job.
A versão do Cloud-init e os estágios do Cloud-init foram atingidos [ 22.446387] cloud-init[703]: Cloud-init v. 20.3-2-g371b392c-0ubuntu1~18.04.1 running 'init-local' at Wed, 28 Oct 2020 17:46:30 +0000. Up 21.23 seconds.
[ 28.357120] cloud-init[837]: Cloud-init v. 20.3-2-g371b392c-0ubuntu1~18.04.1 running 'init' at Wed, 28 Oct 2020 17:46:34 +0000. Up 24.52 seconds.
[ 50.421009] cloud-init[1445]: Cloud-init v. 20.3-2-g371b392c-0ubuntu1~18.04.1 running 'modules:config' at Wed, 28 Oct 2020 17:46:57 +0000. Up 48.21 seconds.
[ 51.338792] cloud-init[1541]: Cloud-init v. 20.3-2-g371b392c-0ubuntu1~18.04.1 running 'modules:final' at Wed, 28 Oct 2020 17:47:00 +0000. Up 51.01 seconds.
[ 51.366837] cloud-init[1541]: Cloud-init v. 20.3-2-g371b392c-0ubuntu1~18.04.1 finished at Wed, 28 Oct 2020 17:47:01 +0000. Datasource DataSourceAzure [seed=/dev/sr0]. Up 51.32 seconds
Pesquise por Cloud-init v.
Interfaces de rede (NICs), estados NIC (up/down) e endereços IP NIC. Mostra se os endereços IP da NIC foram configurados e atribuídos corretamente. A atribuição de endereço IP pode ser dinâmica por meio de DHCP ou configurada estaticamente. [ 28.381544] cloud-init[837]: ci-info: ++++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++++
[ 28.396781] cloud-init[837]: ci-info: +--------+------+-----------------------------+---------------+--------+-------------------+
[ 28.416501] cloud-init[837]: ci-info: | Device | Up | Address | Mask | Scope | Hw-Address |
[ 28.427493] cloud-init[837]: ci-info: +--------+------+-----------------------------+---------------+--------+-------------------+
[ 28.446544] cloud-init[837]: ci-info: | eth0 | True | 10.0.0.4 | 255.255.255.0 | global | 00:0d:3a:c6:17:d5 |
[ 28.460031] cloud-init[837]: ci-info: | eth0 | True | fe80::20d:3aff:fec6:17d5/64 | . | link | 00:0d:3a:c6:17:d5 |
[ 28.476415] cloud-init[837]: ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | host | . |
[ 28.487962] cloud-init[837]: ci-info: | lo | True | ::1/128 | . | host | . |
[ 28.498191] cloud-init[837]: ci-info: +--------+------+-----------------------------+---------------+--------+-------------------+
Pesquise por ci-info ou Net device info.
Rotas IP (IPv4 e IPv6). Mostra rotas IP para vários pontos de extremidade, como a sub-rede VNet, o ponto de extremidade do Azure (168.63.129.16) e o ponto de extremidade IMDS/servidor de metadados da instância do Azure (169.254.169.254). [ 28.508190] cloud-init[837]: ci-info: ++++++++++++++++++++++++++++++Route IPv4 info+++++++++++++++++++++++++++++++
[ 28.522189] cloud-init[837]: ci-info: +-------+-----------------+----------+-----------------+-----------+-------+
[ 28.531173] cloud-init[837]: ci-info: | Route | Destination | Gateway | Genmask | Interface | Flags |
[ 28.549782] cloud-init[837]: ci-info: +-------+-----------------+----------+-----------------+-----------+-------+
[ 28.562896] cloud-init[837]: ci-info: | 0 | 0.0.0.0 | 10.0.0.1 | 0.0.0.0 | eth0 | UG |
[ 28.571653] cloud-init[837]: ci-info: | 1 | 10.0.0.0 | 0.0.0.0 | 255.255.255.0 | eth0 | U |
[ 28.580192] cloud-init[837]: ci-info: | 2 | 168.63.129.16 | 10.0.0.1 | 255.255.255.255 | eth0 | UGH |
[ 28.587633] cloud-init[837]: ci-info: | 3 | 169.254.169.254 | 10.0.0.1 | 255.255.255.255 | eth0 | UGH |
[ 28.600728] cloud-init[837]: ci-info: +-------+-----------------+----------+-----------------+-----------+-------+
[ 28.611117] cloud-init[837]: ci-info: +++++++++++++++++++Route IPv6 info+++++++++++++++++++
[ 28.619534] cloud-init[837]: ci-info: +-------+-------------+---------+-----------+-------+
[ 28.629292] cloud-init[837]: ci-info: | Route | Destination | Gateway | Interface | Flags |
[ 28.638596] cloud-init[837]: ci-info: +-------+-------------+---------+-----------+-------+
[ 28.647791] cloud-init[837]: ci-info: | 1 | fe80::/64 | :: | eth0 | U |
[ 28.660622] cloud-init[837]: ci-info: | 3 | local | :: | eth0 | U |
[ 28.670776] cloud-init[837]: ci-info: | 4 | ff00::/8 | :: | eth0 | U |
[ 28.691506] cloud-init[837]: ci-info: +-------+-------------+---------+-----------+-------+
Pesquise por ci-info, Route IPv4 info ou Route IPv6 info.
Chaves autorizadas SSH para usuários na VM. O arquivo authorized_keys no SSH especifica as chaves SSH que podem ser usadas para fazer logon na conta de usuário para a qual o arquivo está configurado. ci-info: ++++++++++++++++++++++++++Authorized keys from /home/azureuser/.ssh/authorized_keys for user azureuser+++++++++++++++++++++++++++
ci-info: +---------+-------------------------------------------------------------------------------------------------+---------+---------+
ci-info: | Keytype | Fingerprint (sha256) | Options | Comment |
ci-info: +---------+-------------------------------------------------------------------------------------------------+---------+---------+
ci-info: | ssh-rsa | 88:b0:2a:ce:f5:91:49:a2:01:07:a4:e5:db:b3:8c:3e:7e:1f:52:83:53:3c:83:4f:a3:a7:17:13:65:a3:47:e2 | - | - |
ci-info: +---------+-------------------------------------------------------------------------------------------------+---------+---------+
Pesquise por Authorized keys.
Geração de chave de host SSH. Uma chave de host é uma chave criptográfica usada para autenticar computadores no protocolo SSH. As chaves do host são pares de chaves, geralmente usando os algoritmos RSA, DSA ou ECDSA. As chaves de host públicas são armazenadas e/ou distribuídas para clientes SSH, e as chaves privadas são armazenadas em servidores SSH. Starting OpenSSH Server Key Generation...
[ [32m OK [0m] Started OpenSSH Server Key Generation.
[ 40.437735] cloud-init[837]: Generating public/private rsa key pair.
[ 40.451048] cloud-init[837]: Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
[ 40.473777] cloud-init[837]: Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
[ 40.489730] cloud-init[837]: The key fingerprint is:
[ 40.501705] cloud-init[837]: SHA256:NGxA6sf9EAMtczaFSBSJqiGkafEZuPUykNLxefbXofM root@myVmName
[ 40.686610] cloud-init[837]: Generating public/private dsa key pair.
[ 40.712350] cloud-init[837]: Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
[ 40.721901] cloud-init[837]: Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
[ 40.721966] cloud-init[837]: The key fingerprint is:
[ 40.722011] cloud-init[837]: SHA256:QjoxEw9PNOg0P3LW6wnSZzjsfQQ4vhW8S0dAuNWkWHM root@myVmName
[ 40.722606] cloud-init[837]: Generating public/private ecdsa key pair.
[ 40.722650] cloud-init[837]: Your identification has been saved in /etc/ssh/ssh_host_ecdsa_key.
[ 40.722690] cloud-init[837]: Your public key has been saved in /etc/ssh/ssh_host_ecdsa_key.pub.
[ 40.722734] cloud-init[837]: The key fingerprint is:
[ 40.722774] cloud-init[837]: SHA256:BaFqan71k4blzY8TQrLQOavMWoKHgUDgxEAuB0ouJCo root@myVmName
[ 41.063239] cloud-init[837]: Generating public/private ed25519 key pair.
[ 41.091125] cloud-init[837]: Your identification has been saved in /etc/ssh/ssh_host_ed25519_key.
[ 41.120794] cloud-init[837]: Your public key has been saved in /etc/ssh/ssh_host_ed25519_key.pub.
[ 41.154126] cloud-init[837]: The key fingerprint is:
[ 41.157135] cloud-init[837]: SHA256:KsKfIKjwGpMgbYYved5v5oNE6v6eeUwI4AxeeigXk14 root@myVmName
Pesquise por Generating public/private, Your identification has been saved in, The key fingerprint is: ou SHA.
Despejo de impressões digitais da chave do host ssh. <14>Oct 28 17:47:00 ec2: #############################################################
<14>Oct 28 17:47:00 ec2: -----BEGIN SSH HOST KEY FINGERPRINTS-----
<14>Oct 28 17:47:00 ec2: 1024 SHA256:QjoxEw9PNOg0P3LW6wnSZzjsfQQ4vhW8S0dAuNWkWHM root@myVmName (DSA)
<14>Oct 28 17:47:00 ec2: 256 SHA256:BaFqan71k4blzY8TQrLQOavMWoKHgUDgxEAuB0ouJCo root@myVmName (ECDSA)
<14>Oct 28 17:47:00 ec2: 256 SHA256:KsKfIKjwGpMgbYYved5v5oNE6v6eeUwI4AxeeigXk14 root@myVmName (ED25519)
<14>Oct 28 17:47:00 ec2: 2048 SHA256:NGxA6sf9EAMtczaFSBSJqiGkafEZuPUykNLxefbXofM root@myVmName (RSA)
<14>Oct 28 17:47:00 ec2: -----END SSH HOST KEY FINGERPRINTS-----
<14>Oct 28 17:47:00 ec2: #############################################################
Pesquise por BEGIN SSH HOST KEY FINGERPRINTS e END SSH HOST KEY FINGERPRINTS.
Despejo de chaves de host ssh. -----BEGIN SSH HOST KEY KEYS-----
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFzu1pBMlq3g/8ztkQo+ZukigmLzQ02/ogL7Xe8aKjbuM8q4ibo1kWnXB0UuGkGE0DotVyBQsoyUNorTj96G2Xo= root@myVmName
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIbGOVk/IMfL+RZBDo6YlfbKncVTIBy7wSrqL5ixX6yZ root@myVmName
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnH5sIIEFi2ne6CMk1jscVQ289i4idOMJt3WwzHR1lOgJf9kPY+WzmFw71Ai9ZEpqSTpYWxgt+z26ujxAE3R1LvOn1QKetlsPLT5FH8oIZESXmYDb/KL/4k81aDelzko1Xipk5SSai8LeX1qglKUEyGevht9S+QQTHK8Ed++UDzNidCk02iAdhpX/0E5d09NE4r+v5wAojOazLnq6JaESYV07SI7rBOGO7hCdSrQwWodYnhyTQRP3FbqjUeNRqBl3uqlH3+rgMAAPsCpToFTCperTRmyBrCbspzpxIpQSEFbf639EL/7Cst/Ff2ND0D0zVAaSdrmFZisYUcO+VRanZ root@myVmName
-----END SSH HOST KEY KEYS-----
Pesquise por BEGIN SSH HOST KEY KEYS e END SSH HOST KEY KEYS.
O servidor SSH foi iniciado? Starting OpenBSD Secure Shell server...
[ [0;32m OK [0m] Started OpenBSD Secure Shell server.
Starting OpenSSH server daemon...
[ [32m OK [0m] Started OpenSSH server daemon.
Starting OpenSSH Daemon...
[ [0;32m OK [0m] Started OpenSSH Daemon.
Pesquise por Secure Shell server, OpenSSH server daemon ou OpenSSH Daemon.
As sessões de usuário e os logins de usuário são permitidos? A VM está mostrando um prompt de login do usuário? Starting Accounts Service...
Starting Permit User Sessions...
Starting Login Service...
[ [0;32m OK [0m] Started Permit User Sessions.
[ [0;32m OK [0m] Started Login Service.
[ [0;32m OK [0m] Reached target Login Prompts.
[ [0;32m OK [0m] Started Accounts Service.
Ubuntu 18.04.5 LTS myVmName ttyS0
myVmName login:
Pesquise por Accounts Service, Permit User Sessions, Login Service, Login Prompts e login:.
O Agente Linux do Azure foi iniciado com êxito? [ [0;32m OK [0m] Started Azure Linux Agent.
2020/10/28 17:46:52.082569 INFO Daemon Azure Linux Agent Version:2.2.45
Pesquise por Azure Linux Agent.
Do ponto de vista do Agente Linux do Azure, a VM concluiu o provisionamento com êxito? O manipulador de extensão da VM foi iniciado pelo Agente Linux do Azure após o provisionamento bem-sucedido? O Azure Linux Agent só inicia o manipulador de extensão da VM se detectar que o provisionamento da VM foi bem-sucedido. 2020/10/28 17:46:52.586765 INFO Daemon Finished provisioning Pesquise por INFO Daemon Finished provisioning.
Houve algum erro, falha ou exceção no log serial? Pesquise por fail, error, warn e exception nos logs seriais.

Erros comuns

Driver UDF bloqueado

Error: No log serial:

[   10.855501] cloud-init[732]: Cloud-init v. 20.4.1-0ubuntu1~18.04.1 running 'init-local' at Thu, 28 Jan 2021 23:43:02 +0000. Up 10.68 seconds.
[   10.869581] cloud-init[732]: 2021-01-28 23:43:03,097 - azure.py[WARNING]: /dev/sr0 was not mountable
[   10.875608] cloud-init[732]: 2021-01-28 23:43:03,106 - azure.py[ERROR]: No Azure metadata found
[   10.885776] cloud-init[732]: 2021-01-28 23:43:03,107 - azure.py[ERROR]: Could not crawl Azure metadata: No Azure metadata found
[   14.634117] cloud-init[732]: 2021-01-28 23:43:06,876 - azure.py[WARNING]: Reported failure to Azure fabric.

Em waagent.log:

"UDF driver Blocklisted 2020/09/11 19:16:40.240016 ERROR Daemon Provisioning failed: [ProtocolError] [CopyOvfEnv] Error mounting dvd: [OSUtilError] Failed to mount dvd deviceInner error: [mount -o ro -t udf,iso9660 /dev/sr0 /mnt/cdrom/secure] returned 32: mount: /mnt/cdrom/secure: wrong fs type, bad option, bad superblock on /dev/sr0, missing codepage or helper program, or other error."

Causa: o driver UDF não está carregado no kernel, isso é necessário para o provisionamento da VM, consulte requisitos de imagem.

Quando uma VM é provisionada pela primeira vez no Azure, o host do Azure apresenta um 'disco iso cdrom de provisionamento' para a VM. Esse disco de provisionamento geralmente é apresentado à VM por meio de /dev/sr0. No disco de provisionamento, há um manifesto de provisionamento que contém as informações de provisionamento de uma VM. Espera-se que o agente de provisionamento na VM monte o disco de provisionamento, leia o manifesto de provisionamento e provisione a VM de acordo

Como o disco de provisionamento é um cdrom iso disk, o driver UDF do Linux é exigido pelo kernel para montar esse disco com êxito. Isso é mencionado na documentação da Microsoft sobre imagens do Linux. Para esta VM, os logs indicam que o disco de provisionamento falhou ao montar, o que causou falha no provisionamento da VM. O motivo mais provável é devido a drivers UDF ausentes ou bloqueados.

Solução: verifique se o driver UDF está configurado para ser carregado no kernel.

Uma maneira comum de os drivers UDF serem bloqueados é por meio de configurações em /etc/modprobe.d/. Trabalhe com o cliente/proprietário da imagem para garantir que os drivers UDF do Linux estejam presentes e não sejam bloqueados. Consulte este artigo sobre bloqueio/desbloqueio de drivers de kernel.

Caracteres Unicode no problema de tags de VM

Erro: Em cloud-init.log:

  File "/usr/lib/python2.7/site-packages/cloudinit/sources/DataSourceAzure.py", line 1316, in _get_metadata_from_imds
    except json.decoder.JSONDecodeError:
AttributeError: 'module' object has no attribute 'JSONDecodeError'

Causa: Isso acontece porque as tags VM têm caracteres não ASCII e a versão do cloud-init é anterior a 20.3.

Solução: use ou certifique-se de que sua imagem seja compatível com cloud-init 20.3 ou mais recente ou remova os caracteres não ASCII das tags VM.

Senha com caracteres unicode

Erro: Em cloud-init.log:

File "/usr/lib/python2.7/site-packages/cloudinit/sources/DataSourceAzure.py", line 1153, in encrypt_pass
    return crypt.crypt(password, salt_id + util.rand_str(strlen=16))
  File "/usr/lib64/python2.7/crypt.py", line 55, in crypt
    return _crypt.crypt(word, salt)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-11: ordinal not in range(128)

Causa: Isso acontece porque a senha fornecida contém caracteres não suportados (não-ascii).

Solução: Forneça uma senha que contenha apenas caracteres ASCII.

Permissão dhclient

Erro: Em cloud-init.log:

Command: ['/var/tmp/cloud-init/cloud-init-dhcp-yd8mvxud/dhclient', '-1', '-v', '-lf', '/var/tmp/cloud-init/cloud-init-dhcp-yd8mvxud/dhcp.leases', '-pf', '/var/tmp/cloud-init/cloud-init-dhcp-yd8mvxud/dhclient.pid', 'eth0', '-sf', '/bin/true']
Exit code: -
Reason: [Errno 13] Permission denied: b'/var/tmp/cloud-init/cloud-init-dhcp-yd8mvxud/dhclient'

Causa: versões mais antigas do cloud-init (antes da versão 20.3) executam DHCP copiando e executando dhclient dentro de /var/tmp. Se /var/tmp for montado como noexec (sem execução) pela VM, o DHCP falhará devido a dhclient não ter permissões para executar em /var/tmp.

As versões Cloud-init>= 20.3 contêm uma correção que retrocede e executa dhclient "como está" (não copiando e executando em /var/tmp se houver problemas de permissão).

Solução: para VMs executando cloud-init anteriores à versão 20.3, configure a VM para que /var/tmp não seja montado como noexec. Como alternativa, atualize o pacote cloud-init da VM para uma versão >= 20.3.

Obtendo mais registros

Se você achar que precisa de mais logs da VM para entender os problemas, talvez possa fazer SSH na VM usando o console serial usando um usuário inserido na imagem. Se você não tiver um usuário integrado, poderá recriar a imagem com um usuário ou usar a ferramenta de reparo de VM AZ, que montará o disco do sistema operacional da VM que falhou no provisionamento, para outra VM.

az vm repair create  \
    --resource-group $resourceGroup \
    --name $vmName \
    --repair-username repairadm \
    --repair-password AnotherPassword123! \
    --repair-vm-name repairVM \
    --verbose

Entendendo o cloud-init.log

Quando você tiver acesso aos logs do cloud-init, revise a documentação de solução de problemas do cloud-init.

Obtendo suporte

Se você consultou a orientação e ainda não consegue solucionar seu problema, pode abrir um caso de suporte. Ao fazer isso, selecione o produto certo e o tópico de suporte. Isso envolverá a equipe de suporte correta.

Selecionando o produto da caixa:

Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: <COMPLETE>
Support Subtopic: <COMPLETE>

Coletar logs de atividade

Para iniciar a solução de problemas, colete os logs de atividades para identificar o erro associado ao problema. Os links a seguir contêm informações detalhadas sobre o processo a seguir.

Ver operações de implantação

Visualizar logs de atividades para gerenciar recursos do Azure

Problema: imagem personalizada; erros de provisionamento

Erros de provisionamento surgem se você carregar ou capturar uma imagem de VM generalizada como uma imagem de VM especializada ou vice-versa. O primeiro causará um erro de tempo limite de provisionamento e o último causará uma falha de provisionamento. Para implantar sua imagem personalizada sem erros, você deve garantir que o tipo da imagem não seja alterado durante o processo de captura.

A tabela a seguir lista as combinações possíveis de imagens generalizadas e especializadas, o tipo de erro que você encontrará e o que você precisa fazer para corrigir os erros.

A tabela a seguir lista as possíveis combinações de upload e captura de imagens de SO generalizadas e especializadas do Linux. As combinações que serão processadas sem erros são indicadas por um Y, e aquelas que gerarão erros são indicadas por um N. As causas e soluções para os diferentes erros que você encontrará são fornecidas abaixo da tabela.

SO Especificação de upload Gen. de carregamento Especificação de captura Gen. de captura
Gen. de Linux N1 S N3 S
Especificação do Linux S N2 S N4

S: Se o sistema operacional for generalizado de Linux for carregado e/ou capturado com a configuração generalizada, não haverá erros. Da mesma forma, se o sistema operacional for especializado em Linux e for carregado e/ou capturado com a configuração especializada, não haverá erros.

Carregar erros

N1: se o sistema operacional for generalizado de Linux e for carregado como especializado, você receberá um erro de tempo limite de provisionamento porque a VM está travada no estágio de provisionamento.

N2: Se o SO for especializado em Linux e for carregado como generalizado, você receberá um erro de falha de provisionamento porque a nova VM está sendo executada com o nome do computador original, usuário e senha.

Resolução - erro de upload

Para resolver esses dois erros, carregue o VHD original, disponível no local, com a mesma configuração do sistema operacional (generalizado/especializado). Para carregar como generalizado, lembre-se de executar -deprovision primeiro.

Erros de captura

N3: Se o SO for Linux generalizado e for capturado como especializado, você receberá um erro de tempo limite de provisionamento porque a VM original não pode ser usada porque está marcada como generalizado.

N4: Se o SO for especializado em Linux e for capturado como generalizado, você receberá um erro de falha de provisionamento porque a nova VM está sendo executada com o nome do computador original, usuário e senha. Além disso, a VM original não pode ser usada porque está marcada como especializada.

Resolução - Erro de Captura

Para resolver esses dois erros, exclua a imagem atual do portal e recapture-a dos VHDs atuais com a mesma configuração do sistema operacional (generalizado/especializado).

Esse erro surge em situações em que a nova solicitação de VM é fixada em um cluster que não pode suportar o tamanho da VM solicitado ou não tem espaço livre disponível para acomodar a solicitação.

Causa 1

O cluster não é compatível com o tamanho de VM solicitado.

Solução 1

  • Repita a solicitação usando um tamanho de VM menor.

  • Se o tamanho da VM solicitada não puder ser alterado:

    • Pare todas as VMs no conjunto de disponibilidade. Clique em Grupos de recursos>seu grupo de recursos>Recursos>seu conjunto de disponibilidade>Máquinas Virtuais>sua máquina virtual>Parar.
    • Depois que todas as VMs pararem, crie a nova VM no tamanho desejado.
    • Inicie a nova VM primeiro e, em seguida, selecione cada uma das VMs interrompidas e clique em Iniciar.

Causa 2

O cluster não tem recursos livres.

Solução 2

  • Repita a solicitação mais tarde.
  • Se a nova VM puder fazer parte de um conjunto de disponibilidade diferente
    • Crie uma nova VM em um conjunto de disponibilidade diferente (na mesma região).
    • Adicione a nova VM à mesma rede virtual.

Principais problemas

Os principais problemas a seguir podem ajudar a resolver seu problema. Para iniciar a solução de problemas, revise estas etapas:

O cluster não é compatível com o tamanho de VM solicitado

  • Repita a solicitação usando um tamanho de VM menor.
  • Se o tamanho da VM solicitada não puder ser alterado:
    • Pare todas as VMs no conjunto de disponibilidade. Clique em Grupos de recursos> seu grupo de recursos>Recursos> seu conjunto de disponibilidade>Máquinas Virtuais> sua máquina virtual>Parar.
    • Depois que todas as VMs pararem, crie a VM no tamanho desejado.
    • Inicie a nova VM primeiro e, em seguida, selecione cada uma das VMs interrompidas e clique em Iniciar.

O cluster não tem recursos livres

  • Repita a solicitação mais tarde.
  • Se a nova VM puder fazer parte de um conjunto de disponibilidade diferente
    • Crie uma VM em um conjunto de disponibilidade diferente (na mesma região).
    • Adicione a nova VM à mesma rede virtual.

Perguntas frequentes

Como faço para ativar meu crédito mensal para o Visual Studio Enterprise (BizSpark)

Para ativar seu crédito mensal, consulte este artigo.

Por que não consigo instalar o driver da GPU para uma VM Ubuntu NV?

Atualmente, o suporte a GPU Linux está disponível apenas em VMs do Azure NC executando o Ubuntu Server 16.04 LTS. Para obter mais informações, consulte Configurar drivers de GPU para VMs da série N executando Linux.

Meus drivers estão faltando para minha VM Linux N-Series

As instruções para instalar drivers para VMs baseadas em Linux estão localizadas aqui.

Não consigo encontrar uma instância de GPU na minha VM da série N

Para aproveitar os recursos de GPU das VMs da série N do Azure, você deve instalar drivers gráficos em cada VM após a implantação. As informações de configuração do driver estão disponíveis aqui.

As VMs da série N estão disponíveis na minha região?

Você pode verificar a disponibilidade na tabela Produtos disponíveis por região e preços aqui.

Não consigo ver a família de tamanhos de VM que desejo ao redimensionar minha VM

Quando uma VM está em execução, ela é implantada em um servidor físico. Os servidores físicos nas regiões do Azure são agrupados em clusters de hardware físico comum. O redimensionamento de uma VM que exige que a VM seja movida para diferentes clusters de hardware é diferente, dependendo de qual modelo de implantação foi usado para implantar a VM.

  • VMs implantadas no modelo de implantação Clássico, a implantação do serviço de nuvem deve ser removida e reimplantada para alterar as VMs para um tamanho em outra família de tamanho.

  • VMs implantadas no modelo de implantação do Resource Manager, você deve interromper todas as VMs no conjunto de disponibilidade antes de alterar o tamanho de qualquer VM no conjunto de disponibilidade.

O tamanho da VM listado não é suportado durante a implantação no Conjunto de Disponibilidade

Escolha um tamanho com suporte no cluster do conjunto de disponibilidade. Ao criar um conjunto de disponibilidade, é recomendável escolher o maior tamanho de VM que você acha que precisa e fazer com que essa seja sua primeira implantação no conjunto de disponibilidade.

Quais distribuições/versões do Linux têm suporte no Azure?

Você pode encontrar a lista em Linux em Distribuições endossadas pelo Azure.

Posso adicionar uma VM clássica existente a um conjunto de disponibilidade?

Sim. Você pode adicionar uma VM clássica existente a um Conjunto de Disponibilidade novo ou existente. Para obter mais informações, consulte Adicionar uma máquina virtual existente a um conjunto de disponibilidade.

Importante

As VMs clássicas serão desativadas em 1º de setembro de 2023

Se você usa recursos de IaaS do ASM, conclua sua migração até 1º de setembro de 2023. Incentivamos você a fazer a troca mais cedo para aproveitar os muitos aprimoramentos de recursos no Azure Resource Manager.

Para obter mais informações, consulte Migrar seus recursos de IaaS para o Azure Resource Manager até 1º de setembro de 2023.

Próximas etapas

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.