Oracle Linux-alapú virtuális gép előkészítése Azure-beli használatra
A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai
Ez a cikk feltételezi, hogy már telepített egy Oracle 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.
Oracle Linux 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.
- Hyper-V és Azure-támogatás Oracle Linux a Törhetetlen Enterprise Kernel (UEK) vagy a Red Hat kompatibilis kernel.
- Az Oracle UEK2-jét a Hyper-V és az Azure nem támogatja, mivel nem tartalmazza a szükséges illesztőprogramokat.
- 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.
- Az UDF-fájlrendszerek csatlakoztatásához kerneltámogatás szükséges. Az Azure első indításakor a kiépítési konfiguráció a vendéghez csatolt UDF-formátumú adathordozón keresztül továbbítja a Linux rendszerű virtuális gépnek. Az Azure Linux-ügynöknek képesnek kell lennie csatlakoztatni az UDF fájlrendszert a konfiguráció olvasásához és a virtuális gép üzembe helyezéséhez.
- A Linux-rendszer telepítésekor javasoljuk, hogy az LVM helyett standard partíciókat használjon (gyakran sok telepítés esetében ez az alapértelmezett). Ezek a standard partíciók elkerülik a klónozott virtuális gépekkel való LVM-névütközéseket, különösen akkor, ha a hibaelhárításhoz egy operációsrendszer-lemezt egy másik virtuális géphez kell csatlakoztatni. Az LVM vagy a RAID igény szerint adatlemezeken is használható.
- A 2.6.37-nél korábbi Linux kernelverziók nem támogatják a nagyobb virtuálisgép-méretekkel rendelkező Hyper-V-n futó NUMA-t. Ez a probléma elsősorban a red hat 2.6.32-kernelt használó régebbi disztribúciókat érinti, és az Oracle Linux 6.6-os és újabb verzióiban lett javítva.
- Ne konfiguráljon felcserélési partíciót az operációsrendszer-lemezen.
- Az Azure összes virtuális merevlemezének 1 MB-hoz igazított virtuális méretnek kell lennie. 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.
- Győződjön meg arról, hogy az
Addons
adattár engedélyezve van. Szerkessze a fájlt/etc/yum.repos.d/public-yum-ol6.repo
(Oracle Linux 6) vagy/etc/yum.repos.d/public-yum-ol7.repo
(Oracle Linux 7), és módosítsa a [ol6_addons] vagy a [ol7_addons] alatti sorraenabled=0
enabled=1
ebben a fájlban.
Oracle Linux 6.X
Fontos
Tartsa szem előtt az Oracle Linux 6.x már EOL. Az Oracle Linux 6.10-es verziója elérhetővé teszi az ELS-támogatást, amely 2024. 07. 07-én ér véget.
Konkrét konfigurációs lépéseket kell végrehajtania az operációs rendszerben ahhoz, hogy a virtuális gép az Azure-ban fusson.
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.
Távolítsa el a NetworkManagert a következő parancs futtatásával:
sudo rpm -e --nodeps NetworkManager
Megjegyzés:
Ha a csomag még nincs telepítve, ez a parancs hibaüzenettel meghiúsul. Ez az üzenet várható.
Hozzon létre egy hálózat nevű fájlt a
/etc/sysconfig/
könyvtárban, amely a következő szöveget tartalmazza:NETWORKING=yes HOSTNAME=localhost.localdomain
Hozzon létre egy ifcfg-eth0 nevű fájlt a
/etc/sysconfig/network-scripts/
következő szöveget tartalmazó könyvtárban:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Módosítsa az udev-szabályokat, hogy ne generáljon statikus szabályokat az Ethernet-interfész(ek)hez. Ezek a szabályok problémákat okozhatnak egy virtuális gép Klónozásakor a Microsoft Azure-ban vagy a Hyper-V-ben:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
Győződjön meg arról, hogy a hálózati szolgáltatás elindul a rendszerindításkor a következő parancs futtatásával:
sudo chkconfig network on
Telepítse a python-pyasn1 fájlt a következő parancs futtatásával:
sudo yum install python-pyasn1
Módosítsa a rendszermag rendszerindítási sorát a grub-konfigurációban, hogy több kernelparamétert tartalmazzon az Azure-hoz. Ehhez nyissa meg a "/boot/grub/menu.lst" fájlt egy szövegszerkesztőben, és győződjön meg arról, hogy a kernel a következő paramétereket tartalmazza:
console=ttyS0 earlyprintk=ttyS0
Ez a beállítás biztosítja, hogy az összes konzolüzenet az első soros portra legyen elküldve, ami segíthet Azure-támogatás hibakeresési problémák megoldásában.
A fentieken kívül javasoljuk, hogy távolítsa el a következő paramétereket:
rhgb quiet crashkernel=auto
A grafikus és csendes rendszerindítás nem hasznos olyan felhőkörnyezetekben, ahol az összes naplót a soros portra szeretnénk küldeni.
A
crashkernel
beállítás igény szerint konfigurálható, de vegye figyelembe, hogy ez a paraméter 128 MB-kal vagy többel csökkenti a virtuális gépen rendelkezésre álló memória mennyiségét, ami problémás lehet a kisebb virtuálisgép-méreteknél.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 az Azure Linux-ügynököt az alábbi parancs futtatásával. A legújabb verzió a 2.0.15.
sudo yum install WALinuxAgent
A WALinuxAgent csomag telepítése eltávolítja a NetworkManager és a NetworkManager-gnome csomagokat, ha még nem lettek eltávolítva a 2. lépésben leírtak szerint.
Ne hozzon létre felcserélési helyet az operációsrendszer-lemezen.
Az Azure Linux-ügynök automatikusan konfigurálhatja a helycserét a virtuális géphez az Azure üzembe helyezése után csatlakoztatott helyi erőforráslemez használatával. A helyi erőforráslemez ideiglenes lemez, és a virtuális gép megszüntetésekor kiüríthető. Az Azure Linux-ügynök telepítése után (lásd az előző lépést) módosítsa a következő paramétereket a /etc/waagent.conf fájlban megfelelően:
ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.
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:
sudo waagent -force -deprovision sudo export HISTSIZE=0 sudo logout
Kattintson a Művelet gombra –> Leállítás a Hyper-V kezelőben. A Linux VHD most már készen áll az Azure-ba való feltöltésre.
Oracle Linux 7.0 és újabb verziók
Az Oracle Linux 7 változásai
Az Oracle Linux 7 virtuális gép előkészítése az Azure-hoz hasonló az Oracle Linux 6-hoz, azonban számos jelentős különbséget érdemes megjegyezni:
- Azure-támogatás Oracle Linuxot a Törhetetlen Enterprise Kernel (UEK) vagy a Red Hat kompatibilis kernel használatával. Az Oracle Linux és a UEK használata ajánlott.
- A NetworkManager-csomag már nem ütközik az Azure Linux-ügynökkel. Ez a csomag alapértelmezés szerint telepítve van, és azt javasoljuk, hogy ne távolítsa el.
- A GRUB2 lett az alapértelmezett rendszerindító, ezért a kernelparaméterek szerkesztési eljárása megváltozott (lásd alább).
- Az XFS mostantól az alapértelmezett fájlrendszer. Az ext4 fájlrendszer továbbra is használható, ha szükséges.
Konfigurációs lépések
A Hyper-V Kezelőben válassza ki a virtuális gépet.
Kattintson a Csatlakozás gombra a virtuális gép konzolablakának megnyitásához.
Hozzon létre egy hálózat nevű fájlt a
/etc/sysconfig/
könyvtárban, amely a következő szöveget tartalmazza:NETWORKING=yes HOSTNAME=localhost.localdomain
Hozzon létre egy ifcfg-eth0 nevű fájlt a
/etc/sysconfig/network-scripts/
következő szöveget tartalmazó könyvtárban:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Módosítsa az udev-szabályokat, hogy ne generáljon statikus szabályokat az Ethernet-interfész(ek)hez. Ezek a szabályok problémákat okozhatnak egy virtuális gép Klónozásakor a Microsoft Azure-ban vagy a Hyper-V-ben:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
Győződjön meg arról, hogy a hálózati szolgáltatás elindul a rendszerindításkor a következő parancs futtatásával:
sudo chkconfig network on
Telepítse a python-pyasn1 csomagot a következő parancs futtatásával:
sudo yum install python3-pyasn1
Futtassa a következő parancsot az aktuális yum-metaadatok törléséhez és a frissítések telepítéséhez:
sudo yum clean all sudo yum -y update
Módosítsa a rendszermag rendszerindítási sorát a grub-konfigurációban, hogy több kernelparamétert tartalmazzon az Azure-hoz. Ehhez nyissa meg a "/etc/default/grub" fájlt egy szövegszerkesztőben, és szerkessze a
GRUB_CMDLINE_LINUX
paramétert, például:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Ez azt is biztosítja, hogy az összes konzolüzenet az első soros portra legyen elküldve, ami segíthet Azure-támogatás hibakeresési problémákban. Emellett kikapcsolja a hálózati adapterek elnevezési konvencióit az Oracle Linux 7-ben az Unbreakable Enterprise Kernel használatával. A fentieken kívül a következő paraméterek eltávolítása javasolt:
rhgb quiet crashkernel=auto
A grafikus és csendes rendszerindítás nem hasznos olyan felhőkörnyezetekben, ahol az összes naplót a soros portra szeretnénk küldeni.
A
crashkernel
beállítás igény szerint konfigurálható, de vegye figyelembe, hogy ez a paraméter 128 MB-tal vagy többel csökkenti a virtuális gépen rendelkezésre álló memória mennyiségét, ami problémás lehet a kisebb virtuálisgép-méreteknél.Ha végzett a fenti "/etc/default/grub" szerkesztésével, futtassa a következő parancsot a grub-konfiguráció újraépítéséhez:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
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 az Azure Linux-ügynököt és a függőségeket:
sudo yum install WALinuxAgent sudo systemctl enable waagent
A cloud-init telepítése a kiépítés kezeléséhez
sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
Waagent konfigurálása a cloud-inithez
sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf
sudo echo "Adding mounts and disk_setup to init stage" sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg
echo "Allow only Azure datasource, disable fetching network setting via IMDS"
sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOF if [[ -f /mnt/resource/swapfile ]]; then echo Removing swapfile - Oracle Linux uses a swapfile by default swapoff /mnt/swapfile rm /mnt/swapfile -f fi echo "Add console log file" cat >> /etc/cloud/cloud.cfg.d/05_logging.cfg <<EOF # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'} EOF
Konfiguráció felcserélése. Ne hozzon létre felcserélési helyet az operációs rendszer lemezén.
Korábban az Azure Linux-ügynököt automatikusan használták a helycserélés konfigurálásához a virtuális géphez csatolt helyi erőforráslemez használatával, miután a virtuális gépet üzembe helyezték az Azure-ban. Ezt azonban most már a cloud-init kezeli, a Linux-ügynökkel nem formázhatja az erőforráslemezt a felcserélési fájl létrehozásához, és a következő paramétereket
/etc/waagent.conf
megfelelően módosíthatja: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
Ha csatlakoztatni, formázni és létrehozni szeretné a felcserélést, a következőkre van szüksége:
- Ezt felhőbeli konfigurációként adja át minden alkalommal, amikor virtuális gépet hoz létre
- Használjon egy felhőbeli init-direktívát a rendszerképbe, amely ezt minden alkalommal megteszi, amikor a virtuális gép létrejön:
echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF #cloud-config # Generated by Azure cloud image build disk_setup: ephemeral0: table_type: mbr layout: [66, [33, 82]] overwrite: True fs_setup: - device: ephemeral0.1 filesystem: ext4 - device: ephemeral0.2 filesystem: swap mounts: - ["ephemeral0.1", "/mnt/resource"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
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:
sudo cloud-init clean sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision sudo rm -f ~/.bash_history sudo export HISTSIZE=0
Megjegyzés:
Ha egy adott virtuális gépet migrál, és nem szeretne általánosított rendszerképet létrehozni, hagyja ki a leépítési lépést.
Kattintson a Művelet gombra –> Leállítás a Hyper-V kezelőben. A Linux VHD most már készen áll az Azure-ba való feltöltésre.
Következő lépések
Most már készen áll arra, hogy az Oracle Linux .vhd 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.