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 sorra enabled=0enabled=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.

  1. A Hyper-V Manager középső paneljén válassza ki a virtuális gépet.

  2. Kattintson a Csatlakozás a virtuális gép ablakának megnyitásához.

  3. 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ó.

  4. 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
    
  5. 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
    
  6. 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
    
  7. 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
    
  8. Telepítse a python-pyasn1 fájlt a következő parancs futtatásával:

    sudo yum install python-pyasn1
    
  9. 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.

  10. 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.

  11. 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.

  12. 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.
    
  13. 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
    
  14. 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

  1. A Hyper-V Kezelőben válassza ki a virtuális gépet.

  2. Kattintson a Csatlakozás gombra a virtuális gép konzolablakának megnyitásához.

  3. 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
    
  4. 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
    
  5. 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
    
  6. 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
    
  7. Telepítse a python-pyasn1 csomagot a következő parancs futtatásával:

    sudo yum install python3-pyasn1
    
  8. 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
    
  9. 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.

  10. 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
    
  11. 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.

  12. Telepítse az Azure Linux-ügynököt és a függőségeket:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent
    
  13. 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
    
  14. 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
    
  15. 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
    
  16. 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.

  17. 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.