Een virtuele Ubuntu-machine voor Azure voorbereiden
Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️
Ubuntu publiceert nu officiële virtuele Azure-harde schijven (VHD's) voor download op de webpagina Ubuntu Cloud Images. Als u uw eigen gespecialiseerde Ubuntu-installatiekopie voor Azure moet bouwen in plaats van de volgende handmatige procedure te gebruiken, begint u met deze bekende werkende VHD's en past u deze indien nodig aan. U kunt altijd de nieuwste versies van installatiekopieën vinden op de volgende locaties:
- 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
Vereisten
In dit artikel wordt ervan uitgegaan dat u al een Ubuntu Linux-besturingssysteem (OS) hebt geïnstalleerd op een VHD. Er bestaan meerdere hulpprogramma's om VHD-bestanden te maken. Een voorbeeld hiervan is een virtualisatieoplossing zoals Hyper-V. Zie De Hyper-V-rol installeren en een virtuele machine (VM) configureren voor instructies.
Ubuntu-installatieopmerkingen
- Zie algemene linux-installatieopmerkingen voor meer tips over het voorbereiden van Linux voor Azure.
- De VHDX-indeling wordt niet ondersteund in Azure, alleen vaste VHD. U kunt de schijf converteren naar VHD-indeling met Hyper-V-beheer of de
Convert-VHD
cmdlet. - Wanneer u het Linux-systeem installeert, wordt u aangeraden standaardpartities te gebruiken in plaats van LVM (Logical Volume Manager). Dit is vaak de standaardinstelling voor veel installaties. Deze standaardpartities voorkomen conflicten met de LVM-naam met gekloonde VM's, met name als een besturingssysteemschijf ooit aan een andere VM moet worden gekoppeld voor probleemoplossing. LVM of RAID kan ook worden gebruikt op gegevensschijven.
- Configureer geen wisselpartitie of wisselbestand op de besturingssysteemschijf. U kunt de
cloud-init
inrichtingsagent configureren voor het maken van een wisselbestand of een wisselpartitie op de tijdelijke resourceschijf. Zie de volgende stappen voor meer informatie over dit proces. - Alle VHD's in Azure moeten een virtuele grootte hebben die is afgestemd op 1 MB. Wanneer u converteert van een onbewerkte schijf naar VHD, moet u ervoor zorgen dat de grootte van de onbewerkte schijf vóór de conversie een veelvoud van 1 MB is. Zie de installatieopmerkingen voor Linux voor meer informatie.
Handmatige stappen
Notitie
Voordat u probeert uw eigen aangepaste Ubuntu-installatiekopie voor Azure te maken, kunt u in plaats daarvan de vooraf gemaakte en geteste installatiekopieën van de webpagina Ubuntu Cloud Images gebruiken.
Selecteer de VIRTUELE machine in het middelste deelvenster van Hyper-V-beheer.
Selecteer Verbinding maken om het venster voor de virtuele machine te openen.
Vervang de huidige opslagplaatsen in de installatiekopie om de Azure-opslagplaats van Ubuntu te gebruiken.
Voordat u deze bewerkt
/etc/apt/sources.list
, raden we u aan een back-up te maken: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
De Ubuntu Azure-installatiekopieën maken nu gebruik van de op Azure afgestemde kernel. Werk het besturingssysteem bij naar de nieuwste op Azure afgestemde kernel en installeer Azure Linux-hulpprogramma's (inclusief Hyper-V-afhankelijkheden):
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
Wijzig de kernelstartlijn voor GRUB om extra kernelparameters voor Azure op te nemen. Als u deze stap wilt uitvoeren, opent
/etc/default/grub
u deze in een teksteditor, zoekt u de variabele met de naamGRUB_CMDLINE_LINUX_DEFAULT
(of voegt u deze indien nodig toe) en bewerkt u deze om de volgende parameters op te nemen:GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300 quiet splash"
Sla dit bestand op en sluit het en voer het vervolgens uit
sudo update-grub
. Deze stap zorgt ervoor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die ondersteuning biedt voor technische ondersteuning van Azure bij foutopsporingsproblemen.Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Deze instelling is meestal de standaardinstelling.
Installeer
cloud-init
(de inrichtingsagent) en de Azure Linux-agent (de handler voor gastextensies).Cloud-init
gebruiktnetplan
voor het configureren van de systeemnetwerkconfiguratie (tijdens het inrichten en elke volgende opstartbewerking) engdisk
voor het partitioneren van resourceschijven.sudo apt update sudo apt install cloud-init gdisk netplan.io walinuxagent && systemctl stop walinuxagent
Notitie
Het
walinuxagent
pakket kan deNetworkManager
pakketten enNetworkManager-gnome
pakketten verwijderen als ze zijn geïnstalleerd.Verwijder
cloud-init
standaardconfiguraties en restartefactennetplan
die mogelijk conflicteren metcloud-init
het inrichten in 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
Configureren
cloud-init
om het systeem in te richten met behulp van de Azure-gegevensbron: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
Configureer de Azure Linux-agent om te vertrouwen op
cloud-init
het uitvoeren van inrichting. Bekijk het WALinuxAgent-project voor meer informatie over deze opties.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
Runtime-artefacten en logboeken voor Azure Linux-agent opschonen
cloud-init
en logboeken: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
Maak de inrichting van de VIRTUELE machine ongedaan en bereid deze voor op inrichting in Azure.
Notitie
De
sudo waagent -force -deprovision+user
opdracht generaliseert de installatiekopieën door te proberen het systeem schoon te maken en deze geschikt te maken voor het opnieuw inrichten. Met de+user
optie worden het laatst ingerichte gebruikersaccount en de bijbehorende gegevens verwijderd.sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history
Waarschuwing
Het ongedaan maken van de inrichting met behulp van de voorgaande opdracht garandeert niet dat de installatiekopie van alle gevoelige informatie wordt gewist en geschikt is voor herdistributie.
Selecteer Actie>afsluiten in Hyper-V-beheer.
Azure accepteert alleen VHD's met een vaste grootte. Als de besturingssysteemschijf van de virtuele machine geen VHD met vaste grootte is, gebruikt u de
Convert-VHD
PowerShell-cmdlet en geeft u de-VHDType Fixed
optie op. Raadpleeg de documenten voorConvert-VHD
Converteren-VHD voor meer informatie.Voer de volgende stappen uit om een VM van de tweede generatie in Azure te gebruiken:
Wijzig de map in de
boot EFI
map:cd /boot/efi/EFI
Kopieer de map naar een nieuwe map met de
ubuntu
naamboot
:sudo cp -r ubuntu/ boot
Wijzig de map in de zojuist gemaakte opstartmap:
cd boot
Wijzig de naam van het
shimx64.efi
bestand:sudo mv shimx64.efi bootx64.efi
Wijzig de naam van het
grub.cfg
bestand inbootx64.cfg
:sudo mv grub.cfg bootx64.cfg
Gerelateerde inhoud
U bent nu klaar om uw Ubuntu Linux-VHD te gebruiken om nieuwe VM's te maken in Azure. Als dit de eerste keer is dat u het VHD-bestand uploadt naar Azure, raadpleegt u Een Virtuele Linux-machine maken vanaf een aangepaste schijf.