Dela via


Förbereda en virtuell Ubuntu-dator för Azure

Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️

Ubuntu publicerar nu officiella virtuella Azure-hårddiskar (VHD) för nedladdning på Ubuntu Cloud Images-webbsidan. Om du behöver skapa en egen specialiserad Ubuntu-avbildning för Azure i stället för att använda den manuella proceduren som följer börjar du med dessa kända fungerande virtuella hårddiskar och anpassar dem efter behov. Du hittar alltid de senaste avbildningsversionerna på följande platser:

Förutsättningar

Den här artikeln förutsätter att du redan har installerat ett Ubuntu Linux-operativsystem (OS) till en virtuell hårddisk. Det finns flera verktyg för att skapa VHD-filer. Ett exempel är en virtualiseringslösning som Hyper-V. Anvisningar finns i Installera Hyper-V-rollen och konfigurera en virtuell dator (VM).

Installationsanmärkningar för Ubuntu

  • Fler tips om hur du förbereder Linux för Azure finns i Allmänna linux-installationsanteckningar.
  • VHDX-formatet stöds inte i Azure, endast fast virtuell hårddisk. Du kan konvertera disken till VHD-format med hjälp av Hyper-V Manager eller cmdleten Convert-VHD .
  • När du installerar Linux-systemet rekommenderar vi att du använder standardpartitioner i stället för Logical Volume Manager (LVM), vilket ofta är standard för många installationer. Dessa standardpartitioner undviker LVM-namnkonflikter med klonade virtuella datorer, särskilt om en OS-disk någonsin behöver anslutas till en annan virtuell dator för felsökning. LVM eller RAID kan också användas på datadiskar.
  • Konfigurera inte en växlingspartition eller växlingsfil på OS-disken. Du kan konfigurera etableringsagenten cloud-init för att skapa en växlingsfil eller en växlingspartition på den tillfälliga resursdisken. Mer information om den här processen finns i följande steg.
  • Alla virtuella hårddiskar i Azure måste ha en virtuell storlek som är justerad till 1 MB. När du konverterar från en rådisk till en virtuell hårddisk måste du se till att den råa diskstorleken är en multipel på 1 MB före konverteringen. Mer information finns i Installationsanteckningar för Linux.

Manuella steg

Kommentar

Innan du försöker skapa en egen anpassad Ubuntu-avbildning för Azure bör du överväga att använda de fördefinierade och testade bilderna från Ubuntu Cloud Images-webbsidan i stället.

  1. I mittenfönstret i Hyper-V Manager väljer du den virtuella datorn.

  2. Välj Anslut för att öppna fönstret för den virtuella datorn.

  3. Ersätt de aktuella lagringsplatserna i avbildningen för att använda Ubuntus Azure-lagringsplats.

    Innan du redigerar /etc/apt/sources.listrekommenderar vi att du gör en säkerhetskopia:

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
    sudo sed -i 's#http://archive\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list
    sudo sed -i 's#http://[a-z][a-z]\.archive\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list
    sudo sed -i 's#http://security\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list
    sudo sed -i 's#http://[a-z][a-z]\.security\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list
    sudo apt-get update
    
  4. Ubuntu Azure-avbildningarna använder nu den Azure-skräddarsydda kerneln. Uppdatera operativsystemet till den senaste Azure-skräddarsydda kerneln och installera Azure Linux-verktyg (inklusive Hyper-V-beroenden):

    sudo apt update
    sudo apt install linux-azure linux-image-azure linux-headers-azure linux-tools-common linux-cloud-tools-common linux-tools-azure linux-cloud-tools-azure
    sudo apt full-upgrade
    sudo reboot
    
  5. Ändra kernel-startlinjen för GRUB så att den innehåller extra kernelparametrar för Azure. Om du vill göra det här steget öppnar /etc/default/grub du i en textredigerare, letar upp variabeln med namnet GRUB_CMDLINE_LINUX_DEFAULT (eller lägger till den om det behövs) och redigerar den så att den innehåller följande parametrar:

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300 quiet splash"
    
  6. Spara och stäng den här filen och kör sudo update-grubsedan . Det här steget säkerställer att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azures tekniska support med felsökningsproblem.

  7. Kontrollera att SSH-servern är installerad och konfigurerad att starta vid start. Den här inställningen är vanligtvis standardinställningen.

  8. Installera cloud-init (etableringsagenten) och Azure Linux-agenten (gästtilläggshanteraren). Cloud-init använder netplan för att konfigurera systemnätverkskonfigurationen (under etableringen och varje efterföljande start) och gdisk för att partitionera resursdiskar.

    sudo apt update
    sudo apt install cloud-init gdisk netplan.io walinuxagent && systemctl stop walinuxagent
    

    Kommentar

    Paketet walinuxagent kan ta bort paketen NetworkManager och NetworkManager-gnome om de är installerade.

  9. Ta bort cloud-init standardkonfigurationer och överblivna netplan artefakter som kan vara i konflikt med cloud-init etablering i Azure:

    sudo rm -f /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg /etc/cloud/cloud.cfg.d/curtin-preserve-sources.cfg /etc/cloud/cloud.cfg.d/99-installer.cfg /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg
    sudo rm -f /etc/cloud/ds-identify.cfg
    sudo rm -f /etc/netplan/*.yaml
    
  10. Konfigurera cloud-init för att etablera systemet med hjälp av Azure-datakällan:

    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg
    datasource_list: [ Azure ]
    EOF
    
    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/90-azure.cfg
    system_info:
       package_mirrors:
         - arches: [i386, amd64]
           failsafe:
             primary: http://archive.ubuntu.com/ubuntu
             security: http://security.ubuntu.com/ubuntu
           search:
             primary:
               - http://azure.archive.ubuntu.com/ubuntu/
             security: []
         - arches: [armhf, armel, default]
           failsafe:
             primary: http://ports.ubuntu.com/ubuntu-ports
             security: http://ports.ubuntu.com/ubuntu-ports
    EOF
    
    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg
    reporting:
      logging:
        type: log
      telemetry:
        type: hyperv
    EOF
    
  11. Konfigurera Azure Linux-agenten att förlita sig på cloud-init för att utföra etablering. Mer information om de här alternativen finns i WALinuxAgent-projektet.

    sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf
    sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf
    sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf
    sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
    
    cat <<EOF | sudo tee -a /etc/waagent.conf
    # For Azure Linux agent version >= 2.2.45, this is the option to configure,
    # enable, or disable the provisioning behavior of the Linux agent.
    # Accepted values are auto (default), waagent, cloud-init, or disabled.
    # A value of auto means that the agent will rely on cloud-init to handle
    # provisioning if it is installed and enabled, which in this case it will.
    Provisioning.Agent=auto
    EOF
    
  12. Clean cloud-init och Azure Linux-agentens körningsartefakter och loggar:

    sudo cloud-init clean --logs --seed
    sudo rm -rf /var/lib/cloud/
    sudo systemctl stop walinuxagent.service
    sudo rm -rf /var/lib/waagent/
    sudo rm -f /var/log/waagent.log
    
  13. Avetablera den virtuella datorn och förbered den för etablering i Azure.

    Kommentar

    Kommandot sudo waagent -force -deprovision+user generaliserar avbildningen genom att försöka rensa systemet och göra det lämpligt för ometablering. Alternativet +user tar bort det senast etablerade användarkontot och associerade data.

    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    

    Varning

    Avetablering med hjälp av föregående kommando garanterar inte att avbildningen rensas från all känslig information och är lämplig för omdistribution.

  14. Välj Åtgärden>stängs av i Hyper-V Manager.

  15. Azure accepterar endast virtuella hårddiskar med fast storlek. Om den virtuella datorns OS-disk inte är en virtuell hårddisk med fast storlek använder du PowerShell-cmdleten Convert-VHD och anger alternativet -VHDType Fixed . Mer information finns i dokumentationen för Convert-VHD i Convert-VHD.

  16. Följ dessa steg för att ta med en virtuell dator av generation 2 i Azure:

    1. Ändra katalogen till katalogen boot EFI :

      cd /boot/efi/EFI
      
    2. ubuntu Kopiera katalogen till en ny katalog med namnet boot:

      sudo cp -r ubuntu/ boot
      
    3. Ändra katalogen till den nyligen skapade startkatalogen:

      cd boot
      
    4. Byt namn på shimx64.efi filen:

      sudo mv shimx64.efi bootx64.efi
      
    5. Byt namn på grub.cfg filen till bootx64.cfg:

      sudo mv grub.cfg bootx64.cfg
      

Nu är du redo att använda din virtuella Ubuntu Linux-hårddisk för att skapa nya virtuella datorer i Azure. Om det är första gången du laddar upp VHD-filen till Azure läser du Skapa en virtuell Linux-dator från en anpassad disk.