Ubuntu rendszerű virtuális gép előkészítése az Azure-beli használatra
A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai
Az Ubuntu mostantól hivatalos Azure-beli virtuális merevlemezeket tesz közzé letöltésre a következő címen https://cloud-images.ubuntu.com/: . Ha saját speciális Ubuntu-rendszerképet kell létrehoznia az Azure-hoz, ahelyett, hogy az alábbi manuális eljárást használnám, javasoljuk, hogy az ismert működő virtuális merevlemezekkel kezdjen, és szükség szerint testre szabja. A legújabb képkiadások mindig a következő helyeken találhatók:
- 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
Előfeltételek
Ez a cikk feltételezi, hogy már telepített egy Ubuntu Linux operációs rendszert egy virtuális merevlemezre. A .vhd-fájlok létrehozásához több eszköz is létezik, például egy virtualizálási megoldáshoz, például a Hyper-V-hez. Útmutatásért tekintse meg a Hyper-V szerepkör telepítését és a virtuális gép konfigurálását ismertető cikket.
Ubuntu telepítési megjegyzések
- A Linux Azure-ra való előkészítésével kapcsolatos további tippekért tekintse meg a Linux általános telepítési megjegyzéseit is.
- A VHDX formátum az Azure-ban nem támogatott, csak rögzített VHD. A lemezt VHD formátumba konvertálhatja a Hyper-V Manager vagy a
Convert-VHD
parancsmag használatával. - A Linux rendszer telepítésekor javasoljuk, hogy az LVM helyett standard partíciókat használjon (gyakran sok telepítés esetén ez az alapértelmezett). Így elkerülhető a klónozott virtuális gépekkel való LVM-névütközés, különösen akkor, ha egy operációsrendszer-lemezt egy másik virtuális géphez kell csatlakoztatni a hibaelhárításhoz. Az LVM vagy a RAID igény szerint adatlemezeken is használható.
- Ne konfiguráljon felcserélési partíciót vagy swapfile-t az operációsrendszer-lemezen. A cloud-init kiépítési ügynök konfigurálható úgy, hogy swapfájlt vagy swappartíciót hozzon létre az ideiglenes erőforráslemezen. Erről további információt az alábbi lépésekben talál.
- Az Azure-ban minden virtuális merevlemeznek 1 MB-ra kell igazítania a virtuális méretet. Nyers lemezről VHD-re való konvertáláskor az átalakítás előtt győződjön meg arról, hogy a nyers lemez mérete 1 MB többszöröse. További információt a Linux telepítési megjegyzéseiben talál.
Manuális lépések
Megjegyzés:
Mielőtt saját egyéni Ubuntu-rendszerképet próbál létrehozni az Azure-hoz, fontolja meg az előre elkészített és tesztelt rendszerképek https://cloud-images.ubuntu.com/ használatát.
A Hyper-V Manager középső paneljén válassza ki a virtuális gépet.
Kattintson a Csatlakozás a virtuális gép ablakának megnyitásához.
Cserélje le a képen lévő aktuális adattárakat az Ubuntu Azure-adattárának használatára.
A szerkesztés
/etc/apt/sources.list
előtt ajánlott biztonsági másolatot készíteni:
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
- Az Ubuntu Azure-rendszerképek mostantól az Azure-ra szabott kernelt használják. Frissítse az operációs rendszert a legújabb Azure-ra szabott kernelre, és telepítse az Azure Linux-eszközöket (beleértve a Hyper-V függőségeket is) az alábbi parancsok futtatásával:
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
- Módosítsa a Grub rendszerindítási sorát úgy, hogy további kernelparamétereket is tartalmazzon az Azure-hoz. Ha ezt meg szeretné nyitni
/etc/default/grub
egy szövegszerkesztőben, keresse meg a hívottGRUB_CMDLINE_LINUX_DEFAULT
változót (vagy szükség esetén adja hozzá), és szerkessze úgy, hogy az tartalmazza a következő paramétereket:
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300 quiet splash"
Mentse és zárja be a fájlt, majd futtassa a fájlt sudo update-grub
. Ez biztosítja, hogy az összes konzolüzenet az első soros portra legyen elküldve, ami segíthet az Azure technikai támogatásának a hibakeresési problémák megoldásában.
Győződjön meg arról, hogy az SSH-kiszolgáló telepítve van, és úgy van konfigurálva, hogy indításkor induljon el. Ez általában az alapértelmezett.
Telepítse a cloud-initet (a kiépítési ügynököt) és az Azure Linux-ügynököt (a vendégbővítmény-kezelőt). A Cloud-init a rendszer hálózati konfigurációjának konfigurálására (a kiépítés és az azt követő rendszerindítás során) és
gdisk
az erőforráslemezek particionálására használjanetplan
.
sudo apt update
sudo apt install cloud-init gdisk netplan.io walinuxagent && systemctl stop walinuxagent
Megjegyzés:
Ha walinuxagent
telepítve vannak, a csomag eltávolíthatja a NetworkManager
csomagokat és NetworkManager-gnome
a csomagokat.
- Távolítsa el a cloud-init alapértelmezett konfigurációit és a hátrahagyott
netplan
összetevőket, amelyek ütközhetnek a cloud-init kiépítésével az Azure-ban:
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
- A cloud-init konfigurálása a rendszer üzembe helyezéséhez az Azure-adatforrás használatával:
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
- Konfigurálja az Azure Linux-ügynököt úgy, hogy a cloud-initre támaszkodjon a kiépítés végrehajtásához. Tekintse meg a WALinuxAgent projektet , amely további információt nyújt ezekről a lehetőségekről.
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
- A cloud-init és az Azure Linux-ügynök futtatókörnyezeti összetevőinek és naplóinak tisztítása:
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
- Futtassa a következő parancsokat a virtuális gép kivonásához és az Azure-beli üzembe helyezés előkészítéséhez:
Megjegyzés:
A sudo waagent -force -deprovision+user
parancs általánosítja a rendszerképet azáltal, hogy megpróbálja megtisztítani a rendszert, és alkalmassá teszi az újbóli üzembe helyezésre. A +user
beállítás törli az utolsó kiosztott felhasználói fiókot és a kapcsolódó adatokat.
Figyelmeztetés:
A fenti parancs használatával végzett leépítés nem garantálja, hogy a rendszerkép minden bizalmas információtól törlődik, és alkalmas az újraterjesztésre.
sudo waagent -force -deprovision+user
sudo rm -f ~/.bash_history
Kattintson a Művelet gombra –> Leállítás a Hyper-V kezelőben.
Az Azure csak rögzített méretű virtuális merevlemezeket fogad el. Ha a virtuális gép operációsrendszer-lemeze nem rögzített méretű VHD, használja a
Convert-VHD
PowerShell-parancsmagot, és adja meg a-VHDType Fixed
beállítást. Tekintse meg a következő dokumentumokatConvert-VHD
: Convert-VHD.Ha 2. generációs virtuális gépet szeretne üzembe helyezni az Azure-ban, kövesse az alábbi lépéseket:
Módosítsa a címtárat a rendszerindító EFI-könyvtárra:
cd /boot/efi/EFI
- Másolja az ubuntu könyvtárat egy rendszerindítás nevű új könyvtárba:
sudo cp -r ubuntu/ boot
- Módosítsa a könyvtárat az újonnan létrehozott rendszerindító könyvtárra:
cd boot
- Nevezze át a shimx64.efi fájlt:
sudo mv shimx64.efi bootx64.efi
- Nevezze át a grub.cfg fájlt bootx64.cfg fájlra:
sudo mv grub.cfg bootx64.cfg
Következő lépések
Most már készen áll arra, hogy az Ubuntu Linux rendszerű virtuális merevlemez használatával új virtuális gépeket hozzon létre az Azure-ban. Ha ez az első alkalom, hogy feltölti a .vhd fájlt az Azure-ba, olvassa el a Linux rendszerű virtuális gép létrehozása egyéni lemezről című témakört.