Risolvere i problemi di distribuzione di Resource Manager con la creazione di una nuova macchina virtuale Linux in Azure

Quando si tenta di creare una nuova macchina virtuale di Azure, gli errori comuni che si verificano sono errori di provisioning o errori di allocazione.

  • Un errore di provisioning si verifica quando l'immagine del sistema operativo non viene caricata a causa di passaggi preparatori non corretti o a causa della selezione delle impostazioni errate durante l'acquisizione dell'immagine dal portale.
  • Un errore di allocazione si verifica quando il cluster o l'area geografica non dispone di risorse disponibili o non è in grado di supportare le dimensioni della macchina virtuale richieste.

Se il problema di Azure non viene risolto in questo articolo, visitare i forum di Azure su MSDN e Stack Overflow. Puoi pubblicare il tuo problema in questi forum o pubblicare post @AzureSupport su Twitter. È anche possibile inviare una richiesta di supporto di Azure. Per inviare una richiesta di supporto, nella pagina supporto di Azure seleziona Ottieni supporto.

Risoluzione dei problemi di provisioning

Un tipico scenario di errore di provisioning si verifica dopo la creazione di un'immagine personalizzata, quindi la distribuzione di una macchina virtuale da essa, l'esperienza a 40 minuti in cui viene visualizzato lo stato della macchina virtuale e viene visualizzato questo messaggio di creating errore:

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

Oppure:

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

Viene quindi visualizzato lo stato della macchina virtuale contrassegnato come failed .

Perché si verificano errori di provisioning?

In genere, gli errori di provisioning possono verificarsi per diversi motivi, ad esempio:

  • Provisioning mancante /agente configurato in modo non corretto

    • È necessario verificare che un agente sia presente e funzioni correttamente, che si utilizzi cloud-init o che l'immagine non supporti questa operazione, è possibile esaminare questi passaggi.
  • Configurazione immagine non corretta

    • Abbiamo indicazioni su come configurare le immagini con cloud-init e altri requisiti di immagine di Azure,controlla questo.

Risolvere gli errori di provisioning

Per identificare il motivo del provisioning non riuscito, è necessario iniziare con il registro seriale, questo è disponibile distribuendo la macchina virtuale con diagnostica di avvio di Azure.

Sarà necessario distribuire una nuova macchina virtuale con diagnostica di avvio abilitata per la macchina virtuale con l'immagine con errore per accedere agli eventi di provisioning nel registro seriale.

# 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

Per visualizzare il registro seriale, è possibile accedere al portale oppure eseguire il comando seguente per scaricare il registro 'serialConsoleLogBlobUri':

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

Informazioni sul registro seriale per gli eventi di sistema e gli eventi di provisioning

Quando la macchina virtuale viene creata per la prima volta, cloud-init verrà avviato e tenterà di montare un ISO, stabilire la connettività di rete, impostare le proprietà passate durante la creazione della macchina virtuale, montare il disco effimero (su dimensioni di macchina virtuale supportate) e segnalare alla piattaforma Azure che la configurazione del sistema operativo iniziale è stata completata.

Eventi di sistema e informazioni sui tasti Registro seriale Note
Versione kernel e 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) Viene visualizzato all'inizio del registro seriale.
Opzioni della riga di comando del 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
Viene visualizzato all'inizio del registro seriale. Cercare command line: .
Versione 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) Cercare systemd .
Obiettivi di sistema raggiunti [ [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.
Cercare Reached target .
Obiettivi comuni di rete systemd tra diverse distro [ [0;32m OK [0m] Reached target Network (Pre).
[ [0;32m OK [0m] Reached target Network.
[ [0;32m OK [0m] Reached target Network is Online.
Cercare Reached target Network .
Stato di rete approfondito e destinazioni di rete per Ubuntu e distros in cui la rete di sistema è gestita da 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.
Cercare network o networkd .
Stato di rete approfondito e obiettivi di rete per RHEL/CentOS e distros in cui la rete di sistema è gestita da 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.
Cercare network o Network Manager .
Stato di rete approfondito e obiettivi di rete per SUSE/SLES e distros in cui la rete di sistema è gestita da 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.
Cercare network o wicked .
L'avvio ha raggiunto una distanza sufficiente per l'avvio del cloud? Starting Initial cloud-init job (pre-networking)...
Starting Initial cloud-init job (metadata service crawler)...
Cercare Starting Initial cloud-init job .
Versione cloud-init e fasi cloud-init raggiunte [ 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
Cercare Cloud-init v .
Interfacce di rete (NIC), stati nic (up/down) e indirizzi IP NIC. Indica se gli indirizzi IP NIC sono stati configurati e assegnati correttamente. L'assegnazione degli indirizzi IP può essere dinamica tramite DHCP o configurata in modo statico. [ 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: +--------+------+-----------------------------+---------------+--------+-------------------+
Cercare ci-info o Net device info .
Route IP (IPv4 e IPv6). Mostra le route IP per vari endpoint, ad esempio la subnet della rete virtuale, l'endpoint di Azure ( ) e il server metadati 168.63.129.16 dell'istanza di Azure/endpoint IMDS ( 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: +-------+-------------+---------+-----------+-------+
Cercare ci-info , Route IPv4 info o Route IPv6 info .
Chiavi autorizzate SSH per gli utenti nella macchina virtuale. Il file in SSH specifica le chiavi SSH che possono essere utilizzate per accedere authorized_keys all'account utente per cui è configurato il file. 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: +---------+-------------------------------------------------------------------------------------------------+---------+---------+
Cercare Authorized keys .
Generazione della chiave host SSH. Una chiave host è una chiave crittografica utilizzata per l'autenticazione dei computer nel protocollo SSH. Le chiavi host sono coppie di chiavi, in genere utilizzando gli algoritmi RSA, DSA o ECDSA. Le chiavi host pubbliche vengono archiviate e/o distribuite ai client SSH e le chiavi private vengono archiviate nei server 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
Cercare Generating public/private , Your identification has been saved in The key fingerprint is: , o SHA .
Dump delle impronte digitali dei tasti 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: #############################################################
Cercare BEGIN SSH HOST KEY FINGERPRINTS e END SSH HOST KEY FINGERPRINTS .
Dump delle chiavi 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-----
Cercare BEGIN SSH HOST KEY KEYS e END SSH HOST KEY KEYS .
Il server SSH è stato avviato? 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.
Cercare Secure Shell server , OpenSSH server daemon o OpenSSH Daemon .
Le sessioni utente e gli accessi utente sono consentiti? La macchina virtuale mostra un prompt di accesso utente? 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:
Cercare Accounts Service , Permit User Sessions Login Service , , Login Prompts e login: .
L'agente Di Azure Linux è stato avviato correttamente? [ [0;32m OK [0m] Started Azure Linux Agent.
2020/10/28 17:46:52.082569 INFO Daemon Azure Linux Agent Version:2.2.45
Cercare Azure Linux Agent .
Dal punto di vista dell'agente Linux di Azure, la macchina virtuale ha completato correttamente il provisioning? Il gestore di estensione della macchina virtuale è stato avviato dall'agente Linux di Azure dopo l'esito positivo del provisioning? L'agente Linux di Azure avvia il gestore di estensione della macchina virtuale solo se rileva che il provisioning della macchina virtuale è riuscito. 2020/10/28 17:46:52.586765 INFO Daemon Finished provisioning Cercare INFO Daemon Finished provisioning .
Si sono verificati errori, errori o eccezioni nel registro seriale? Cercare fail , error , e nei warn registri exception seriali.

Errori comuni

Driver UDF in elenco

Errore: nel registro seriale:

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

In 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: il driver UDF non viene caricato nel kernel, questo è necessario per il provisioning della macchina virtuale, vedere requisiti di immagine.

Quando viene eseguito il provisioning di una macchina virtuale per la prima volta in Azure, l'host di Azure presenta un "disco iso cdrom di provisioning" alla macchina virtuale. Questo disco di provisioning viene in genere presentato alla macchina virtuale tramite /dev/sr0. All'interno del disco di provisioning è presente un manifesto di provisioning che contiene le informazioni di provisioning di una macchina virtuale. L'agente di provisioning in-VM deve montare il disco di provisioning, leggere il manifesto di provisioning ed eseguire il provisioning della macchina virtuale di conseguenza

Poiché il disco di provisioning è un , il driver UDF Linux è richiesto dal cdrom iso disk kernel per montare correttamente il disco. Viene fatto riferimento nella documentazione Microsoft sulle immagini Linux. Per questa macchina virtuale, i log indicano che il disco di provisioning non è stato montato, causando un errore nel provisioning della macchina virtuale. Il motivo più probabile è dovuto a driver UDF mancanti o bloccati.

Soluzione: verificare che il driver UDF sia configurato per il caricamento nel kernel.

Un modo comune per bloccare i driver UDF è tramite le config all'interno di /etc/modprobe.d/ . Contattare il proprietario del cliente/immagine per assicurarsi che i driver UDF Linux siano presenti e non bloccati. Consultare questo articolo sul blocco/sblocco dei driver del kernel.

Problema relativo ai caratteri Unicode nei tag vm

Errore: in 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: ciò accade perché i tag vm hanno caratteri non ascii e la versione di cloud-init è precedente alla 20.3.

Soluzione: utilizzare o verificare che l'immagine supporti cloud-init 20.3 o versione più recente oppure rimuovere i caratteri non ascii dai tag VM.

Password con caratteri Unicode

Errore: in 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: ciò si verifica perché la password specificata contiene caratteri non supportati (non ascii).

Soluzione: specificare una password contenente solo caratteri ascii.

Autorizzazione Dhclient

Errore: in 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: le versioni precedenti di cloud-init (prima della versione 20.3) eseguono DHCP copiando ed eseguendo dhclient all'interno di /var/tmp . Se viene montato come (nessuna esecuzione) dalla macchina virtuale, DHCP avrà esito negativo a causa della mancata autorizzazione per /var/tmp noexec l'esecuzione dhclient all'interno di /var/tmp .

Le versioni cloud-init >= 20.3 contengono una correzione che esegue il falls back ed esegue "così come è" (non copiando ed eseguendola in caso di problemi di dhclient /var/tmp autorizzazioni).

Soluzione: per le macchine virtuali che eseguono cloud init precedenti alla versione 20.3, configurare la macchina virtuale in modo che non /var/tmp sia montata come noexec . In alternativa, aggiornare il pacchetto cloud-init della macchina virtuale a una versione >= 20.3.

Recupero di altri log

Se si trova che sono necessari più log dalla macchina virtuale per comprendere i problemi, è possibile SSH nella macchina virtuale usando la console seriale usando un utente che è cotto nell'immagine. Se non si dispone di un utente, è possibile ricreare l'immagine con un utente oppure usare lo strumento di ripristino della macchina virtuale AZ che consente di montare il disco del sistema operativo della macchina virtuale di cui non è stato eseguito il provisioning, in un'altra macchina virtuale.

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

Informazioni sul file cloud-init.log

Quando si ha accesso ai log cloud-init, consultare la documentazione relativa alla risoluzione dei problemi del cloud.

Ottenere supporto

Se hai fatto riferimento alle indicazioni e non riesci ancora a risolvere il problema, puoi aprire un caso di supporto. In questo caso, selezionare il prodotto e l'argomento di supporto corretti, in questo modo verrà contattato il team di supporto corretto.

Selezione del prodotto del caso:

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

Raccogliere i log attività

Per avviare la risoluzione dei problemi, raccogliere i log attività per identificare l'errore associato al problema. I collegamenti seguenti contengono informazioni dettagliate sul processo da seguire.

Visualizzare le operazioni di distribuzione

Visualizzare i log attività per gestire le risorse di Azure

Problema: immagine personalizzata; errori di provisioning

Se si carica o acquisisce un'immagine di macchina virtuale generalizzata come immagine di macchina virtuale specializzata o viceversa, si verificano errori di provisioning. Il primo causerà un errore di timeout di provisioning e il secondo causerà un errore di provisioning. Per distribuire l'immagine personalizzata senza errori, devi assicurarti che il tipo dell'immagine non cambi durante il processo di acquisizione.

Nella tabella seguente sono elencate le possibili combinazioni di immagini generalizzate e specializzate, il tipo di errore che si verifica e le operazioni necessarie per correggere gli errori.

Nella tabella seguente sono elencate le possibili combinazioni di caricamento e acquisizione di immagini del sistema operativo Linux generalizzate e specializzate. Le combinazioni che verranno evase senza errori sono indicate da Y e quelle che genereranno errori sono indicate da un N. Le cause e le soluzioni per i diversi errori che verranno eseguiti sono indicate sotto la tabella.

Sistema operativo Upload specifiche. Upload gen. Specifica di acquisizione. Generazione di acquisizione.
Generazione Linux. N1 Y N3 Y
Specifica Linux. Y N2 Y N4

Y: Se il sistema operativo è generalizzato linux e viene caricato e/o acquisito con l'impostazione generalizzata, non ci saranno errori. Analogamente, se il sistema operativo è specializzato in Linux e viene caricato e/o acquisito con l'impostazione specializzata, non ci saranno errori.

Upload errori

N 1: Se il sistema operativo è generalizzato linux e viene caricato come specializzato, si riceverà un errore di timeout di provisioning perché la macchina virtuale è bloccata nella fase di provisioning.

N 2: Se il sistema operativo è specializzato in Linux e viene caricato come generalizzato, si riceverà un errore di provisioning perché la nuova macchina virtuale è in esecuzione con il nome computer, il nome utente e la password originali.

Risoluzione - Upload errore

Per risolvere entrambi questi errori, caricare il disco rigido virtuale originale, disponibile in locale, con la stessa impostazione del sistema operativo (generalizzato/specializzato). Per eseguire il caricamento come generalizzato, ricordarsi di eseguire prima -deprovision.

Errori di acquisizione

N 3: Se il sistema operativo è generalizzato linux e viene acquisito come specializzato, si riceverà un errore di timeout di provisioning perché la macchina virtuale originale non è utilizzabile perché è contrassegnata come generalizzata.

N 4: Se il sistema operativo è specializzato in Linux e viene acquisito come generalizzato, verrà visualizzato un errore di provisioning perché la nuova macchina virtuale è in esecuzione con il nome computer, il nome utente e la password originali. Inoltre, la macchina virtuale originale non è utilizzabile perché è contrassegnata come specializzata.

Risoluzione - Errore di acquisizione

Per risolvere entrambi questi errori, eliminare l'immagine corrente dal portale e ricavarla dai dischi rigidi virtuali correnti con la stessa impostazione del sistema operativo (generalizzato/specializzato).

Questo errore si verifica in situazioni in cui la nuova richiesta di macchina virtuale viene aggiunta a un cluster che non supporta la dimensione della macchina virtuale richiesta o non dispone di spazio disponibile per la richiesta.

Causa 1

Il cluster non è in grado di supportare le dimensioni della macchina virtuale richieste.

Risoluzione 1

  • Ritentare la richiesta usando una macchina virtuale di dimensioni inferiori.

  • Se le dimensioni della macchina virtuale richiesta non possono essere modificate:

    • Arrestare tutte le macchine virtuali nel set di disponibilità. Fare clic su Gruppi di risorse il gruppo di risorse Risorse set di > > > disponibilità Macchine > virtuali > arrestare la macchina > virtuale.
    • Dopo l'arresto di tutte le macchine virtuali, creare la nuova macchina virtuale nelle dimensioni desiderate.
    • Avviare prima la nuova macchina virtuale e quindi selezionare ognuna delle macchine virtuali arrestate e fare clic su Avvia.

Causa 2

Il cluster non dispone di risorse gratuite.

Risoluzione 2

  • Ritentare la richiesta in un secondo momento.
  • Se la nuova macchina virtuale può far parte di un set di disponibilità diverso
    • Creare una nuova macchina virtuale in un set di disponibilità diverso (nella stessa area geografica).
    • Aggiungere la nuova macchina virtuale alla stessa rete virtuale.

Problemi principali

I seguenti problemi principali possono aiutare a risolvere il problema. Per avviare la risoluzione dei problemi, eseguire la procedura seguente:

Il cluster non è in grado di supportare le dimensioni della macchina virtuale richieste

  • Ritentare la richiesta usando una macchina virtuale di dimensioni inferiori.
  • Se le dimensioni della macchina virtuale richiesta non possono essere modificate:
    • Arrestare tutte le macchine virtuali nel set di disponibilità. Fare clic su Gruppi di > nel gruppo di risorse > risorse > il set di disponibilità > macchine virtuali > macchina virtuale > Arresta.
    • Dopo l'arresto di tutte le macchine virtuali, creare la macchina virtuale nelle dimensioni desiderate.
    • Avviare prima la nuova macchina virtuale e quindi selezionare ognuna delle macchine virtuali arrestate e fare clic su Avvia.

Il cluster non dispone di risorse gratuite

  • Ritentare la richiesta in un secondo momento.
  • Se la nuova macchina virtuale può far parte di un set di disponibilità diverso
    • Creare una macchina virtuale in un set di disponibilità diverso (nella stessa area geografica).
    • Aggiungere la nuova macchina virtuale alla stessa rete virtuale.

Domande frequenti

Come posso attivare il credito mensile per Visual studio Enterprise (BizSpark)

Per attivare il credito mensile, vedere questo articolo.

Perché non è possibile installare il driver GPU per una macchina virtuale Ubuntu NV?

Attualmente, il supporto della GPU Linux è disponibile solo nelle macchine virtuali NC di Azure che eseguono Ubuntu Server 16.04 LTS. Per ulteriori informazioni, vedere Set up GPU drivers for N-series VMs running Linux.

I driver non sono presenti per la macchina virtuale Linux N-Series

Le istruzioni per installare i driver per le macchine virtuali basate su Linux sono disponibili qui.

Non è possibile trovare un'istanza gpu all'interno della macchina virtuale N-Series

Per sfruttare le funzionalità GPU delle macchine virtuali azure serie N, è necessario installare i driver grafici in ogni macchina virtuale dopo la distribuzione. Le informazioni sulla configurazione dei driver sono disponibili qui.

Le macchine virtuali N-Series sono disponibili nella mia area geografica?

Puoi controllare la disponibilità dalla tabella Prodotti disponibili perarea geografica e i prezzi qui.

Non è possibile visualizzare la famiglia di dimensioni della macchina virtuale desiderata durante il ridimensionamento della macchina virtuale

Quando una macchina virtuale è in esecuzione, viene distribuita in un server fisico. I server fisici nelle aree di Azure sono raggruppati in cluster di hardware fisico comune. Il ridimensionamento di una macchina virtuale che richiede lo spostamento della macchina virtuale in cluster hardware diversi varia a seconda del modello di distribuzione utilizzato per distribuire la macchina virtuale.

  • Le macchine virtuali distribuite nel modello di distribuzione classica, la distribuzione del servizio cloud deve essere rimossa e ridistribuito per modificare le macchine virtuali in una dimensione in un'altra famiglia di dimensioni.

  • Macchine virtuali distribuite nel modello di distribuzione di Resource Manager, è necessario arrestare tutte le macchine virtuali nel set di disponibilità prima di modificare le dimensioni di qualsiasi macchina virtuale nel set di disponibilità.

Le dimensioni della macchina virtuale elencate non sono supportate durante la distribuzione nel set di disponibilità

Scegliere una dimensione supportata nel cluster del set di disponibilità. È consigliabile quando si crea un set di disponibilità per scegliere le dimensioni di macchina virtuale più grandi che si pensa siano necessarie e che sia la prima distribuzione al set di disponibilità.

Quali distribuzioni/versioni di Linux sono supportate in Azure?

È possibile trovare l'elenco in Linux in Distribuzioni approvate da Azure.

È possibile aggiungere una macchina virtuale classica esistente a un set di disponibilità?

Sì. È possibile aggiungere una macchina virtuale classica esistente a un set di disponibilità nuovo o esistente. Per ulteriori informazioni, vedere Aggiungere una macchina virtuale esistente a un set di disponibilità.

Importante

Le macchine virtuali classiche verranno ritirate il 1° marzo 2023.

Se si utilizzano risorse IaaS da ASM, completare la migrazione entro il 1° marzo 2023. Ti invitiamo a eseguire il passaggio prima per sfruttare i numerosi miglioramenti apportati alle funzionalità in Azure Resource Manager.

Per ulteriori informazioni, vedere Migrate your IaaS resources to Azure Resource Manager by March 1, 2023.

Passaggi successivi