Solución de problemas de la implementación de Resource Manager con la creación de una nueva máquina virtual de Linux en Azure

Nota:

CentOS al que se hace referencia en este artículo es una distribución de Linux y llegará al final de la vida útil (EOL). Considere su uso y planifique en consecuencia. Para obtener más información, consulte Guía de fin de vida de CentOS.

Cuando intenta crear una nueva Azure Virtual Machine (VM), los errores comunes que encuentra son de aprovisionamiento o de asignación.

  • Se produce un error de aprovisionamiento cuando la imagen del sistema operativo no se carga debido a pasos preparatorios incorrectos o debido a la selección de la configuración incorrecta durante la captura de la imagen desde el portal.
  • Dicho error se produce cuando el clúster o la región no tienen recursos disponibles o no admiten el tamaño de máquina virtual solicitado.

Si su problema con Azure no se trata en este artículo, visite los foros de Azure en MSDN y Stack Overflow. Puede publicar su problema en ellos o en @AzureSupport en Twitter. También puede enviar una solicitud de soporte de Azure. Para enviar una solicitud de soporte, en la página Soporte técnico de Azure, seleccione Obtener soporte técnico.

Solución de problemas de aprovisionamiento

Un típico caso de error en el aprovisionamiento ocurre cuando crea una imagen personalizada e implementa una máquina virtual (VM) a partir de ella, y luego se muestra hasta 40 minutos el estado de VM creatingy ve este mensaje de error:

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/.

O bien:

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."
      }
    ]
  }
}

Luego verá el estado de VM marcado como failed.

¿Por qué ocurren los errores de aprovisionamiento?

Por lo general, los errores de aprovisionamiento pueden ocurrir por varios motivos, como:

  • Falta aprovisionamiento / agente configurado incorrectamente

    • Deberá asegurarse de que haya un agente presente y funcione correctamente. Debería utilizar cloud-init o, si su imagen no es compatible con esto, puede consultar estos pasos.
  • Configuración de imagen incorrecta

Solucionar errores de aprovisionamiento

Para identificar el motivo del aprovisionamiento fallido, deberá comenzar con el registro en serie, que está disponible mediante la implementación de la VM con los diagnósticos de arranque de Azure.

Deberá implementar una nueva VM con diagnósticos de arranque habilitados para que la máquina virtual con la imagen anómala acceda a los eventos de aprovisionamiento en el registro en serie.

# 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 ver el registro en serie, puede ir al Portal o ejecutar el siguiente comando para descargar el registro “serialConsoleLogBlobUri”:

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

Comprensión del registro en serie para eventos del sistema y de aprovisionamiento

Cuando se crea la VM por primera vez, cloud-init se iniciará e intentará montar una ISO, establecer la conectividad de red, definir las propiedades pasadas durante la creación de la VM, montar el disco efímero (en los tamaños de VM admitidos) y devolver la señal a la plataforma Azure que ha completado la configuración inicial del sistema operativo.

Eventos del sistema e información clave Registro en serie Notas
Lanzamiento y versión de 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 al principio del registro en serie.
Opciones de la línea de comandos de 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 al principio del registro en serie. Busque command line:.
Versión de 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) Busque systemd.
Objetivos de systemd alcanzados [ [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.
Busque Reached target.
Objetivos comunes de redes de systemd en diferentes distribuciones [ [0;32m OK [0m] Reached target Network (Pre).
[ [0;32m OK [0m] Reached target Network.
[ [0;32m OK [0m] Reached target Network is Online.
Busque Reached target Network.
Estado de red en profundidad y objetivos de red para Ubuntu y distribuciones donde la red del sistema es administrada 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.
Busque network o networkd.
Estado de red en profundidad y objetivos de red para RHEL/CentOS y distribuciones donde la red del sistema es administrada 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.
Busque network o Network Manager.
Estado de red en profundidad y objetivos de red para SUSE/SLES y distribuciones donde la red del sistema es administrada 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.
Busque network o wicked.
¿El arranque llegó lo suficientemente lejos como para que se iniciara cloud-init? Starting Initial cloud-init job (pre-networking)...
Starting Initial cloud-init job (metadata service crawler)...
Busque Starting Initial cloud-init job.
Versión y etapas alcanzadas de cloud-init [ 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
Busque Cloud-init v.
Interfaces de red (NIC), estados de NIC (activo/inactivo) y direcciones IP de NIC. Muestra si las direcciones IP de NIC se configuraron y asignaron correctamente. La asignación de direcciones IP puede configurarse de forma dinámica, a través de DHCP, o estática. [ 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: +--------+------+-----------------------------+---------------+--------+-------------------+
Busque ci-info o Net device info.
Rutas IP (IPv4 e IPv6). Muestra rutas IP para varios puntos de conexión, como la subred de VNet, el punto de conexión de Azure (168.63.129.16) y el servidor de metadatos de instancia/punto de conexión IMDS de 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: +-------+-------------+---------+-----------+-------+
Busque ci-info, Route IPv4 infoo Route IPv6 info.
Claves autorizadas SSH para los usuarios de la VM. El archivo authorized_keys en SSH especifica las claves SSH que se pueden usar para iniciar sesión en la cuenta de usuario para la que está configurado el archivo. 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: +---------+-------------------------------------------------------------------------------------------------+---------+---------+
Busque Authorized keys.
Generación de claves de host SSH. Una clave de host es una clave criptográfica que se utiliza para autenticar los equipos en el protocolo SSH. Las claves de host son pares de claves que suelen utilizar los algoritmos RSA, DSA o ECDSA. Las claves públicas de host se almacenan o distribuyen a los clientes SSH, y las privadas se almacenan en 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
Busque Generating public/private, Your identification has been saved in, The key fingerprint is:o SHA.
Volcado de huellas digitales de clave de 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: #############################################################
Busque BEGIN SSH HOST KEY FINGERPRINTS y END SSH HOST KEY FINGERPRINTS.
Volcado de claves 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-----
Busque BEGIN SSH HOST KEY KEYS y END SSH HOST KEY KEYS.
¿Se inició el servidor SSH? 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.
Busque Secure Shell server, OpenSSH server daemono OpenSSH Daemon.
¿Se permiten las sesiones de usuario y los inicios de sesión de los usuarios? ¿La máquina virtual muestra un mensaje de inicio de sesión de usuario? 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:
Busque Accounts Service, Permit User Sessions, Login Service, Login Promptsy login:.
¿El agente de Linux de Azure se inició correctamente? [ [0;32m OK [0m] Started Azure Linux Agent.
2020/10/28 17:46:52.082569 INFO Daemon Azure Linux Agent Version:2.2.45
Busque Azure Linux Agent.
Desde el punto de vista del agente de Linux de Azure, ¿la máquina virtual terminó de aprovisionarse correctamente? ¿El agente de Linux de Azure inició el controlador de extensión de máquina virtual después de que el aprovisionamiento se realizara correctamente? El agente de Linux de Azure solo inicia el controlador de extensión de VM si detecta que el aprovisionamiento de VM se realizó correctamente. 2020/10/28 17:46:52.586765 INFO Daemon Finished provisioning Busque INFO Daemon Finished provisioning.
¿Hubo errores, fallos o excepciones en el registro en serie? Busque fail, error, warn y exception en los registros en serie.

Errores comunes

Controlador UDF incluido en la lista de bloqueados

Error: En el registro en serie:

[   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.

En 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 El controlador UDF no está cargado en el kernel y esto es necesario para que la máquina virtual se aprovisione; consulte requisitos de imagen.

Cuando una máquina virtual se aprovisiona por primera vez en Azure, el host de Azure presenta un “disco iso cdrom de aprovisionamiento” a la máquina virtual. Este disco de aprovisionamiento generalmente se presenta a la VM a través de /dev/sr0. Dentro del disco de aprovisionamiento, hay un manifiesto de aprovisionamiento que contiene la información de aprovisionamiento de una VM. Se espera que el agente de aprovisionamiento en la VM monte el disco de aprovisionamiento, lea el manifiesto de aprovisionamiento y aprovisione la VM en consecuencia.

Dado que el disco de aprovisionamiento es un cdrom iso disk, el kernel requiere el controlador UDF de Linux para montar correctamente este disco. Se hace referencia a esto en la documentación de Microsoft sobre imágenes de Linux. Para esta VM, los registros indican que el disco de aprovisionamiento no se pudo montar, lo que provocó que fallara el aprovisionamiento de la VM. La razón más probable se debe a que faltan controladores UDF o están bloqueados.

Solución: Asegúrese de que el controlador UDF esté configurado para cargarse en el kernel.

Una forma común de bloquear los controladores UDF es a través de configuraciones en /etc/modprobe.d/. Trabaje con el cliente o con el propietario de la imagen para asegurarse de que los controladores UDF de Linux estén presentes y no bloqueados. Consulte este artículo sobre el bloqueo/desbloqueo de controladores de kernel.

Problema de caracteres Unicode en las etiquetas VM

Error: En 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 Esto sucede porque las etiquetas VM tienen caracteres no ASCII y la versión de cloud-init es anterior a la 20.3.

Solución: Utilice o asegúrese de que su imagen sea compatible con cloud-init 20.3 o posterior, o elimine los caracteres que no sean ASCII de las etiquetas VM.

Contraseña con caracteres Unicode

Error: En 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 Esto sucede porque la contraseña proporcionada tiene caracteres no admitidos (no ASCII).

Solución: Proporcione una contraseña que solo tenga caracteres ASCII.

Permiso de dhclient

Error: En 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 Las versiones anteriores de cloud-init (antes de la versión 20.3) realizan el DHCP copiando y ejecutando dhclient dentro de /var/tmp. Si /var/tmp está montado como noexec (sin ejecución) por la VM, el DHCP fallará debido a dhclient no tener permisos para ejecutarse dentro /var/tmp.

Las versiones >= 20.3 de Cloud-init contienen una corrección que retrocede y ejecuta dhclient "tal cual" (no copiándolo y ejecutándolo en /var/tmp si hay problemas de permisos).

Solución: Para las VM que ejecutan cloud-init anteriores a la versión 20.3, configure la VM para que /var/tmp no esté montado como noexec. Como alternativa, actualice el paquete cloud-init de la VM a una versión >= 20.3.

Obtener más registros

Si descubre que necesita más registros de la VM para comprender los problemas, tal vez pueda utilizar SSH en la VM usando la consola serie con un usuario integrado en la imagen. Si no tiene un usuario integrado, puede volver a crear la imagen con un usuario o utilizar la Herramienta de reparación de VM de AZ, que montará el disco del sistema operativo de la VM que no se pudo aprovisionar en otra VM.

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

Entender el cloud-init.log

Cuando tenga acceso a los registros de cloud-init, revise la documentación de solución de problemas de cloud-init.

Obtener soporte

Si ha consultado la guía y aún no puede solucionar el problema, puede abrir un caso de soporte. Al hacerlo, seleccione el producto y el tema de soporte adecuados; al hacerlo, se involucrará al equipo de soporte correcto.

Selección del producto del caso:

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

Recopilación de registros de actividad

Para iniciar la solución de problemas, recopile los registros de actividad para identificar el error asociado con el problema. Los vínculos siguientes contienen información detallada sobre el proceso que se debe seguir.

Ver operaciones de implementación

Ver registros de actividad para administrar recursos de Azure

Problema: Imagen personalizada; errores de aprovisionamiento

Los errores de aprovisionamiento surgen si carga o captura una imagen de VM generalizada como una imagen de VM especializada o viceversa. Lo primero provocará un error de tiempo de espera de aprovisionamiento y lo segundo, un error de aprovisionamiento. Para implementar su imagen personalizada sin errores, debe asegurarse de que el tipo de imagen no cambie durante el proceso de captura.

La siguiente tabla enumera las posibles combinaciones de imágenes generalizadas y especializadas, el tipo de error que encontrará y lo que debe hacer para corregirlo.

La siguiente tabla enumera las posibles combinaciones de carga y captura de imágenes de SO generalizadas y especializadas de Linux. Las combinaciones que se procesarán sin errores se indican con una Y, y las que devolverán errores con una N. Las causas y soluciones de los diferentes errores con los que se encontrará se detallan a continuación de la tabla.

SO Carga espec. Carga gen. Captura espec. Captura gen.
Linux gen. N1 Y N3 Y
Linux espec. Y N2 Y N4

S: Si el sistema operativo es Linux generalizado y se carga o captura con la configuración generalizada, no habrá errores. De forma similar, si el sistema operativo es Linux especializado y se carga o captura con la configuración especializada, no habrá errores.

Errores de carga

N1: Si el sistema operativo es Linux generalizado y se carga como especializado, recibirá un error de tiempo de espera de aprovisionamiento porque la VM se bloqueará en la fase de aprovisionamiento.

N2: Si el sistema operativo es Linux especializado y se carga como generalizado, recibirá un error de aprovisionamiento porque la nueva VM se ejecuta con el nombre del equipo, el nombre de usuario y la contraseña originales.

Resolución: error de carga

Para resolver estos errores, cargue el VHD original, disponible en el entorno local, con la misma configuración que para el sistema operativo (generalizado o especializado). Para cargarlo como generalizado, no olvide ejecutarlo o desaprovisionarlo antes.

Errores de captura

N3: Si el sistema operativo es Linux generalizado y se captura como especializado, recibirá un error de tiempo de espera de aprovisionamiento porque la VM original no se puede utilizar, ya que está marcada como generalizada.

N4: Si el sistema operativo es Linux especializado y se captura como generalizado, recibirá un error de aprovisionamiento porque la nueva VM se ejecuta con el nombre del equipo, el nombre de usuario y la contraseña originales. Además, no se puede utilizar la máquina virtual original ya que está marcada como especializada.

Resolución: error de captura

Para resolver estos errores, elimine la imagen actual del portal y vuelva a capturarla desde los discos duros virtuales actuales con la misma configuración que para el sistema operativo (generalizada o especializada).

Este error se produce en situaciones en las que la nueva solicitud de máquina virtual está anclada en un clúster que no admite el tamaño de la máquina virtual que se solicita o no tiene espacio libre disponible para alojar la solicitud.

Causa 1

El clúster no admite el tamaño de máquina virtual solicitado

Solución 1

  • Vuelva a intentar la solicitud con un tamaño de máquina virtual menor.

  • Si no se puede cambiar el tamaño de la máquina virtual solicitada:

    • Detenga todas las máquinas virtuales en el conjunto de disponibilidad. Haga clic en Grupos de recursos>su grupo de recursos>Recursos>su conjunto de disponibilidad>Virtual Machines>su máquina virtual>Detener.
    • Después de detener todas las máquinas virtuales, cree la nueva máquina virtual con el tamaño deseado.
    • Inicie la nueva máquina virtual en primer lugar y luego seleccione cada una de las máquinas virtuales detenidas y haga clic en Iniciar.

Causa 2

El clúster no tiene recursos disponibles.

Solución 2

  • Vuelva a intentar la solicitud más tarde.
  • Si la nueva máquina virtual puede formar parte de un conjunto de disponibilidad diferente
    • Cree una nueva máquina virtual en un conjunto de disponibilidad diferente (en la misma región).
    • Agregue la nueva máquina virtual a la misma red virtual.

Principales problemas

Los siguientes problemas principales pueden ayudarle a resolver su problema. Para comenzar a solucionar problemas, revise estos pasos:

El clúster no admite el tamaño de máquina virtual solicitado

  • Vuelva a intentar la solicitud con un tamaño de máquina virtual menor.
  • Si no se puede cambiar el tamaño de la máquina virtual solicitada:
    • Detenga todas las máquinas virtuales en el conjunto de disponibilidad. Haga clic en Grupos de recursos> su grupo de recursos >Recursos> su conjunto de disponibilidad >Máquinas virtuales> su máquina virtual >Stop.
    • Después de detener todas las máquinas virtuales, cree la máquina virtual con el tamaño deseado.
    • Inicie la nueva máquina virtual en primer lugar y luego seleccione cada una de las máquinas virtuales detenidas y haga clic en Iniciar.

El clúster no tiene recursos disponibles

  • Vuelva a intentar realizar la solicitud más tarde.
  • Si la nueva máquina virtual puede formar parte de un conjunto de disponibilidad diferente
    • Cree una máquina virtual en un conjunto de disponibilidad diferente (en la misma región).
    • Agregue la nueva máquina virtual a la misma red virtual.

preguntas más frecuentes

Cómo se activa mi crédito mensual para Visual Studio Enterprise (BizSpark)

Para activar su crédito mensual, consulte este artículo.

¿Por qué no puedo instalar el controlador de GPU para una máquina virtual NV de Ubuntu?

Actualmente, la compatibilidad con la GPU de Linux solo está disponible en las máquinas virtuales de Azure NC que ejecutan Ubuntu Server 16.04 LTS. Para más información consulte Configuración de controladores de GPU para máquinas virtuales de la serie N con Linux.

Faltan los controladores para mi máquina virtual de la serie N de Linux

Las instrucciones para instalar los controladores para las máquinas virtuales basadas en Linux se encuentran aquí.

No puedo encontrar una instancia de GPU en mi máquina virtual de la serie N.

Para aprovechar las funcionalidades de GPU de las máquinas virtuales de la serie N de Azure, debe instalar los controladores de gráficos en cada máquina virtual después de la implementación. La información sobre la instalación de los controladores está disponible aquí.

¿Hay máquinas virtuales de la serie N disponibles en mi región?

Puede comprobar la disponibilidad en la tabla de productos disponibles por región y el precio aquí.

Al cambiar el tamaño de la máquina virtual, no puedo ver la familia de tamaño de la máquina virtual que deseo.

Cuando una máquina virtual se está ejecutando, se implementa en un servidor físico. Los servidores físicos en regiones de Azure se agrupan en clústeres de hardware físico común. El modo de cambiar el tamaño de una máquina virtual que requiere que esta se mueva a clústeres de hardware diferentes difiere en función del modelo de implementación que se usara para implementarla.

  • En el caso de las máquinas virtuales implementadas en el modelo de implementación clásico, la implementación del servicio de nube debe quitarse y volver a implementarse para cambiar su tamaño por uno de otra familia de tamaño.

  • En el caso de las máquinas virtuales implementadas en el modelo de implementación Resource Manager, debe detener todas las máquinas virtuales dentro del conjunto de disponibilidad antes de cambiar el tamaño de cualquiera de estas.

El tamaño de máquina virtual enumerado no se admite mientras se implementa en el conjunto de disponibilidad.

Elija un tamaño que se admita en el clúster del conjunto de disponibilidad. Al crear un conjunto de disponibilidad, se recomienda elegir el mayor tamaño de máquina virtual que piense que va a necesitar y tiene que ser la primera implementación para el conjunto de disponibilidad.

¿Qué distribuciones o versiones de Linux son compatibles con Azure?

Puede encontrar la lista de Linux en Linux en distribuciones aprobadas por Azure.

¿Puedo agregar una máquina virtual clásica a un conjunto de disponibilidad?

Sí. Puede agregar una máquina virtual clásica existente a un conjunto de disponibilidad nuevo o existente. Para más información, consulte Incorporación de una máquina virtual existente a un conjunto de disponibilidad.

Importante

Las MV clásicas se retirarán el 1 de marzo de 2023.

Si usa recursos de IaaS de ASM, complete su migración antes del 1 de marzo de 2023. Le recomendamos que haga el cambio antes para aprovechar las numerosas mejoras de funciones de Azure Resource Manager.

Para obtener más información, consulte Migrar sus recursos de IaaS a Azure Resource Manager antes del 1 de marzo de 2023.

Pasos siguientes

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.