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:
- 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 (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.
I mittenfönstret i Hyper-V Manager väljer du den virtuella datorn.
Välj 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):
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 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 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 . 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.Kontrollera att SSH-servern är installerad och konfigurerad att starta vid start. Den här inställningen är vanligtvis standardinställningen.
Installera
cloud-init
(etableringsagenten) och Azure Linux-agenten (gästtilläggshanteraren).Cloud-init
användernetplan
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 paketenNetworkManager
ochNetworkManager-gnome
om de är installerade.Ta bort
cloud-init
standardkonfigurationer och överblivnanetplan
artefakter som kan vara i konflikt medcloud-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
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 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
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
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.
Välj Åtgärden>stängs 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
. Mer information finns i dokumentationen förConvert-VHD
i Convert-VHD.Följ dessa steg för att ta med en virtuell dator av generation 2 i Azure:
Ändra katalogen till katalogen
boot EFI
:cd /boot/efi/EFI
ubuntu
Kopiera katalogen till en ny katalog med namnetboot
:sudo cp -r ubuntu/ boot
Ändra katalogen till den nyligen skapade startkatalogen:
cd boot
Byt namn på
shimx64.efi
filen:sudo mv shimx64.efi bootx64.efi
Byt namn på
grub.cfg
filen tillbootx64.cfg
:sudo mv grub.cfg bootx64.cfg
Relaterat innehåll
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.