Udostępnij za pośrednictwem


Rozwiązywanie problemów podczas wdrażania maszyn wirtualnych z systemem Linux

Dotyczy: ✔️ maszyny wirtualne z systemem Linux

Uwaga

CentOS, do których odwołuje się ten artykuł, jest dystrybucją systemu Linux i osiągnie koniec życia (EOL). Rozważ odpowiednie użycie i zaplanuj. Aby uzyskać więcej informacji, zobacz CentOS End Of Life guidance (Wskazówki dotyczące zakończenia życia systemu CentOS).

Podczas próby utworzenia nowej maszyny wirtualnej platformy Azure (VM) typowymi napotykanymi błędami są niepowodzenia aprowizacji lub niepowodzenia alokacji.

  • Niepowodzenie aprowizacji występuje, gdy nie można załadować obrazu systemu operacyjnego ze względu na nieprawidłowe czynności przygotowawcze lub z powodu wybrania nieprawidłowych ustawień podczas przechwytywania obrazu z portalu.
  • Niepowodzenie alokacji występuje, gdy klaster lub region nie ma dostępnych zasobów lub nie obsługuje żądanego rozmiaru maszyny wirtualnej.

Jeśli problem z platformą Azure nie został rozwiązany w tym artykule, odwiedź fora platformy Azure w witrynach MSDN i Stack Overflow. Możesz opublikować swój problem na tych forach lub opublikować go na @AzureSupport na Twitterze. Możesz również przesłać żądanie pomoc techniczna platformy Azure. Aby przesłać wniosek o pomoc techniczną, na stronie pomoc techniczna platformy Azure wybierz pozycję Uzyskaj pomoc techniczną.

Objawy

Typowy scenariusz niepowodzenia aprowizacji występuje po utworzeniu obrazu niestandardowego, a następnie wdróż z niego maszynę wirtualną, a następnie występuje błąd 40 minut, w którym wyświetlany jest creatingstan maszyny wirtualnej, i zostanie wyświetlony następujący komunikat o błędzie:

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

Lub:

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

Następnie zostanie wyświetlony stan maszyny wirtualnej oznaczony jako failed.

Dlaczego występują błędy aprowizacji?

Często błędy aprowizacji mogą wystąpić z wielu powodów, takich jak:

  • Brak aprowizacji /niepoprawnie skonfigurowanego agenta

    Musisz upewnić się, że agent jest obecny i działa poprawnie, należy użyć pakietu cloud-init lub jeśli obraz nie będzie go obsługiwać, możesz przejrzeć te kroki.

  • Nieprawidłowa konfiguracja obrazu

    Mamy wskazówki dotyczące konfigurowania obrazów przy użyciu pakietu cloud-init i innych wymagań dotyczących obrazów platformy Azure. Sprawdź to.

Rozwiązywanie problemów z błędami aprowizacji

Aby zidentyfikować przyczynę nieudanej aprowizacji, musisz rozpocząć od dziennika szeregowego, jest to dostępne przez wdrożenie maszyny wirtualnej przy użyciu diagnostyki rozruchu platformy Azure.

Należy wdrożyć nową maszynę wirtualną z włączoną diagnostyką rozruchu dla maszyny wirtualnej z nieudanym obrazem w celu uzyskania dostępu do zdarzeń aprowizacji w dzienniku seryjnym.

# 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

Aby wyświetlić dziennik szeregowy, możesz przejść do portalu lub uruchomić poniższe polecenie, aby pobrać dziennik serialConsoleLogBlobUri :

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

Opis dziennika szeregowego zdarzeń systemowych i zdarzeń aprowizacji

Po utworzeniu maszyny wirtualnej po raz pierwszy program cloud-init uruchomi się i spróbuje zainstalować iso, ustanowić łączność sieciową, ustawić właściwości przekazywane podczas tworzenia maszyny wirtualnej, zainstalować dysk efemeryczny (na obsługiwanych rozmiarach maszyn wirtualnych) i sygnalizować z powrotem do platformy Azure, że początkowa konfiguracja systemu operacyjnego została ukończona.

Zdarzenia systemowe i kluczowe informacje Dziennik seryjny Uwagi
Wydanie jądra i wersja jądra [ 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) Pojawia się na początku dziennika szeregowego.
Opcje wiersza polecenia jądra [ 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
Pojawia się na początku dziennika szeregowego. Wyszukaj ciąg command line:.
Wersja systemowa [ 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) Wyszukaj ciąg systemd.
Osiągnięte cele systemowe [ [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.
Wyszukaj ciąg Reached target.
Typowe obiekty docelowe sieci systemowej w różnych dystrybucjach [ [0;32m OK [0m] Reached target Network (Pre).
[ [0;32m OK [0m] Reached target Network.
[ [0;32m OK [0m] Reached target Network is Online.
Wyszukaj ciąg Reached target Network.
Szczegółowy stan sieci i cele sieciowe dla systemu Ubuntu i dystrybucji, w których sieć systemowa jest zarządzana przez systemd-networkprogram . 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.
network Wyszukaj ciąg lub networkd.
Szczegółowy stan sieci i cele sieciowe dla systemu RHEL/CentOS i dystrybucji, w których sieć systemowa jest zarządzana przez Network Managerprogram . 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.
network Wyszukaj ciąg lub Network Manager.
Szczegółowy stan sieci i cele sieciowe dla systemu SUSE/SLES i dystrybucji, w których sieć systemowa jest zarządzana przez Wickedprogram . 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.
network Wyszukaj ciąg lub wicked.
Czy rozruch osiągnął wystarczająco dużo, aby rozpocząć uruchamianie pakietu cloud-init? Starting Initial cloud-init job (pre-networking)...
Starting Initial cloud-init job (metadata service crawler)...
Wyszukaj ciąg Starting Initial cloud-init job.
Osiągnięto etapy cloud-init i 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
Wyszukaj ciąg Cloud-init v.
Interfejsy sieciowe, stany karty sieciowej (w górę/w dół) i adresy IP karty sieciowej. Pokazuje, czy adresy IP karty sieciowej zostały prawidłowo skonfigurowane i przypisane. Przypisanie adresu IP może być dynamiczne za pośrednictwem protokołu DHCP lub statycznie skonfigurowane. [ 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: +--------+------+-----------------------------+---------------+--------+-------------------+
ci-info Wyszukaj ciąg lub Net device info.
Trasy adresów IP (IPv4 i IPv6). Przedstawia trasy adresów IP dla różnych punktów końcowych, takich jak podsieć sieci wirtualnej, punkt końcowy platformy Azure (168.63.129.16) i punkt końcowy usługi Azure Instance Metadata Server/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: +-------+-------------+---------+-----------+-------+
Wyszukaj ciąg ci-info, Route IPv4 infolub Route IPv6 info.
Klucze autoryzowane przez protokół SSH dla użytkowników na maszynie wirtualnej. Plik authorized_keys w formacie SSH określa klucze SSH, których można użyć do logowania się na koncie użytkownika, dla którego skonfigurowano plik. 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: +---------+-------------------------------------------------------------------------------------------------+---------+---------+
Wyszukaj ciąg Authorized keys.
Generowanie klucza hosta SSH. Klucz hosta to klucz kryptograficzny używany do uwierzytelniania komputerów w protokole SSH. Klucze hosta są parami kluczy, zwykle przy użyciu algorytmów RSA, DSA lub ECDSA. Publiczne klucze hosta są przechowywane na klientach SSH i/lub dystrybuowane, a klucze prywatne są przechowywane na serwerach 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
Wyszukaj ciąg Generating public/private, Your identification has been saved in, The key fingerprint is:lub SHA.
Zrzut odcisków palców klucza hosta 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: #############################################################
Wyszukaj ciąg BEGIN SSH HOST KEY FINGERPRINTS i END SSH HOST KEY FINGERPRINTS.
Zrzut kluczy hosta 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-----
Wyszukaj ciąg BEGIN SSH HOST KEY KEYS i END SSH HOST KEY KEYS.
Czy serwer SSH został uruchomiony? 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.
Wyszukaj ciąg Secure Shell server, OpenSSH server daemonlub OpenSSH Daemon.
Czy dozwolone są sesje użytkowników i identyfikatory logowania użytkowników? Czy maszyna wirtualna wyświetla monit logowania użytkownika? 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:
Wyszukaj ciąg Accounts Service, , Permit User Sessions, Login PromptsLogin Service, i login:.
Czy agent platformy Azure z systemem Linux został pomyślnie uruchomiony? [ [0;32m OK [0m] Started Azure Linux Agent.
2020/10/28 17:46:52.082569 INFO Daemon Azure Linux Agent Version:2.2.45
Wyszukaj ciąg Azure Linux Agent.
Z punktu widzenia agenta systemu Linux platformy Azure maszyna wirtualna pomyślnie zakończyła aprowizację? Czy procedura obsługi rozszerzenia maszyny wirtualnej została uruchomiona przez agenta systemu Linux platformy Azure po pomyślnych aprowizacji? Agent systemu Linux platformy Azure uruchamia procedurę obsługi rozszerzenia maszyny wirtualnej tylko wtedy, gdy wykryje powodzenie aprowizacji maszyny wirtualnej. 2020/10/28 17:46:52.586765 INFO Daemon Finished provisioning Wyszukaj ciąg INFO Daemon Finished provisioning.
Czy w dzienniku szeregowym wystąpiły błędy, błędy lub wyjątki? Wyszukaj ciąg fail, error, warni exception w dziennikach szeregowych.

Typowe błędy

Wyłączony moduł UDF

Błąd w dzienniku szeregowym:

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

Błąd w 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."

Przyczyna: Sterownik UDF nie jest załadowany w jądrze, jest to wymagane, aby maszyna wirtualna aprowizować, zobacz wymagania dotyczące obrazów.

Gdy maszyna wirtualna jest po raz pierwszy aprowizowana na platformie Azure, host platformy Azure przedstawia maszynę wirtualną "aprowizowanie dysku iso cdrom". Ten dysk aprowizacji jest zwykle przedstawiany maszynie wirtualnej za pośrednictwem pliku /dev/sr0. Na dysku aprowizacji istnieje manifest aprowizacji, który zawiera informacje o aprowizacji maszyny wirtualnej. Oczekuje się, że agent aprowizacji maszyny wirtualnej zainstaluje dysk aprowizacji, odczytuje manifest aprowizacji i odpowiednio aprowizuje maszynę wirtualną.

Ponieważ dysk aprowizacji to cdrom iso disk, sterownik UDF systemu Linux jest wymagany przez jądro w celu pomyślnego zainstalowania tego dysku. Dotyczy to dokumentacji firmy Microsoft na obrazach systemu Linux. W przypadku tej maszyny wirtualnej dzienniki wskazują, że instalacja dysku aprowizacji nie powiodła się, co spowodowało niepowodzenie aprowizacji maszyny wirtualnej. Najbardziej prawdopodobną przyczyną jest brak lub zablokowanie sterowników UDF.

Rozwiązanie: Upewnij się, że sterownik UDF został skonfigurowany do załadowania w jądrze.

Typowym sposobem blokowania sterowników funkcji zdefiniowanej przez użytkownika jest konfiguracja w programie /etc/modprobe.d/. Skontaktuj się z właścicielem klienta/obrazu, aby upewnić się, że sterowniki UDF systemu Linux są obecne i nie są blokowane. Zapoznaj się z tym artykułem dotyczącym blokowania/odblokowywania sterowników jądra.

Problem z znakami Unicode w tagach maszyn wirtualnych

Błąd w 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'

Przyczyna: Dzieje się tak, ponieważ tagi maszyn wirtualnych mają znaki inne niż ascii, a wersja pliku cloud-init jest starsza niż 20.3.

Rozwiązanie: użyj lub upewnij się, że obraz obsługuje plik cloud-init 20.3 lub nowszy albo usuń znaki inne niż ascii z tagów maszyn wirtualnych.

Hasło ze znakami Unicode

Błąd w 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)

Przyczyna: Dzieje się tak, ponieważ podane hasło ma nieobsługiwane znaki (inne niż ascii).

Rozwiązanie: podaj hasło, które ma tylko znaki ascii.

Uprawnienie Dhclient

Błąd w 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'

Przyczyna: Starsze wersje pakietu cloud-init (przed wersją 20.3) wykonują protokół DHCP, kopiując i wykonując polecenie dhclient w programie /var/tmp. Jeśli /var/tmp maszyna wirtualna jest instalowana jako noexec (bez wykonywania), usługa DHCP zakończy się niepowodzeniem z powodu dhclient braku uprawnień do wykonania w programie /var/tmp.

Wersje >cloud-init = 20.3 zawierają poprawkę, która powraca i wykonuje dhclient polecenie "as-is" (nie kopiując i wykonując je, /var/tmp jeśli występują problemy z uprawnieniami).

Rozwiązanie: W przypadku maszyn wirtualnych z uruchomionym programem cloud-init starszym niż wersja 20.3 skonfiguruj maszynę wirtualną tak, aby /var/tmp nie jest zainstalowana jako noexec. Alternatywnie uaktualnij pakiet cloud-init maszyny wirtualnej do wersji >= 20.3.

Uwaga

Problem dhclient z uprawnieniami został rozwiązany w wersji cloud-init 22.4 lub nowszej. Aby uzyskać więcej informacji, zobacz cloud-init issues 3956 (Problemy z programem cloud-init 3956).

Uzyskiwanie większej liczby dzienników

Jeśli okaże się, że potrzebujesz więcej dzienników z maszyny wirtualnej, aby zrozumieć problemy, możesz połączyć się z maszyną wirtualną za pomocą konsoli szeregowej przy użyciu użytkownika, który jest wypiekany do obrazu. Jeśli nie masz użytkownika zapieczonego, możesz ponownie utworzyć obraz za pomocą użytkownika lub użyć narzędzia az VM Repair tool , które zainstaluje dysk systemu operacyjnego maszyny wirtualnej, która nie może aprowizować, na innej maszynie wirtualnej.

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

Omówienie cloud-init.log

Jeśli masz dostęp do dzienników cloud-init, zapoznaj się z dokumentacją rozwiązywania problemów cloud-init.

Zbieranie dzienników aktywności

Aby rozpocząć rozwiązywanie problemów, zbierz dzienniki aktywności, aby zidentyfikować błąd skojarzony z problemem. Poniższe linki zawierają szczegółowe informacje dotyczące procesu, które należy wykonać.

Wyświetlanie operacji wdrażania

Wyświetlanie dzienników aktywności w celu zarządzania zasobami platformy Azure

Uzyskiwanie pomocy technicznej

Jeśli odniosłeś się do wskazówek i nadal nie możesz rozwiązać problemu, możesz otworzyć zgłoszenie do pomocy technicznej. W takim przypadku wybierz właściwy temat dotyczący produktu i pomocy technicznej. Spowoduje to zaangażowanie odpowiedniego zespołu pomocy technicznej.

Wybieranie produktu przypadku:

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

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pomoc techniczną społeczności platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.