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 för nedladdning på https://cloud-images.ubuntu.com/. Om du behöver skapa en egen specialiserad Ubuntu-avbildning för Azure, i stället för att använda den manuella proceduren nedan rekommenderar vi att du börjar med dessa kända fungerande virtuella hårddiskar och anpassar efter behov. De senaste avbildningsversionerna finns alltid på följande platser:
- Ubuntu 18.04/Bionic: bionic-server-cloudimg-amd64-azure.vhd.zip
- Ubuntu 20.04/Focal: focal-server-cloudimg-amd64-azure.vhd.zip
- Ubuntu 22.04/Jammy: jammy-server-cloudimg-amd64-azure.vhd.zip
Förutsättningar
Den här artikeln förutsätter att du redan har installerat ett Ubuntu Linux-operativsystem på en virtuell hårddisk. Det finns flera verktyg för att skapa VHD-filer, till exempel en virtualiseringslösning som Hyper-V. Anvisningar finns i Installera Hyper-V-rollen och Konfigurera en virtuell dator.
Installationsanmärkningar för Ubuntu
- Mer information 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 LVM (ofta standard för många installationer). Detta förhindrar att LVM-namn står i konflikt 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 användas på datadiskar om så önskas.
- Konfigurera inte en växlingspartition eller växlingsfil på OS-disken. Cloud-init-etableringsagenten kan konfigureras för att skapa en växlingsfil eller en växlingspartition på den tillfälliga resursdisken. Mer information om detta finns i stegen nedan.
- 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 av 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örbyggda och testade avbildningarna från https://cloud-images.ubuntu.com/ i stället.
I den centrala rutan i Hyper-V Manager väljer du den virtuella datorn.
Klicka på Anslut för att öppna fönstret för den virtuella datorn.
Ersätt de aktuella lagringsplatserna i avbildningen för att använda Ubuntus Azure-lagringsplats.
Innan du redigerar
/etc/apt/sources.list
rekommenderar 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
- 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) genom att köra följande kommandon:
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
- Ändra kernel-startlinjen för Grub så att den innehåller ytterligare kernelparametrar för Azure. Om du vill göra detta öppet
/etc/default/grub
i en textredigerare letar du upp variabeln med namnetGRUB_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"
Spara och stäng den här filen och kör sudo update-grub
sedan . Detta säkerställer att alla konsolmeddelanden skickas till den första serieporten, vilket kan hjälpa Azures tekniska support med felsökningsproblem.
Kontrollera att SSH-servern är installerad och konfigurerad att starta vid start. Detta är vanligtvis standardvärdet.
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) ochgdisk
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.
- Ta bort standardkonfigurationer och överblivna
netplan
artefakter i cloud-init som kan vara i konflikt med etablering av cloud-init 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
- 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
- Konfigurera Azure Linux-agenten så att den förlitar sig på cloud-init för att utföra etablering. Ta en titt på WALinuxAgent-projektet för mer information om dessa alternativ.
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
- Rensa 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
- Kör följande kommandon för att avetablera den virtuella datorn och förbereda 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.
Varning
Avetablering med kommandot ovan garanterar inte att avbildningen rensas från all känslig information och är lämplig för omdistribution.
sudo waagent -force -deprovision+user
sudo rm -f ~/.bash_history
Klicka på Åtgärd –> Stäng av i Hyper-V Manager.
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
. Ta en titt på dokumenten förConvert-VHD
här: Convert-VHD.Följ dessa steg för att ta med en virtuell dator av generation 2 i Azure:
Ändra katalog till EFI-startkatalogen:
cd /boot/efi/EFI
- Kopiera ubuntu-katalogen till en ny katalog med namnet boot:
sudo cp -r ubuntu/ boot
- Ändra katalog till den nyligen skapade startkatalogen:
cd boot
- Byt namn på filen shimx64.efi:
sudo mv shimx64.efi bootx64.efi
- Byt namn på filen grub.cfg till bootx64.cfg:
sudo mv grub.cfg bootx64.cfg
Nästa steg
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.