SLES vagy openSU előkészítése Standard kiadás Ugrás virtuális gép az Azure-hoz

A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek ✔️ Rugalmas méretezési csoportok : ✔️ Egységes méretezési csoportok

Bizonyos esetekben érdemes lehet testre szabott SU Standard kiadás Linux Enterprise Servert (SLES) vagy openSU Standard kiadás Linux rendszerű virtuális gépeket (VM-eket) használni az Azure-környezetben, és automatizálással létrehozni ezeket a típusú virtuális gépeket. Ez a cikk bemutatja, hogyan hozhat létre és tölthet fel egyéni Azure-beli virtuális merevlemezt (VHD), amely su Standard kiadás Linux operációs rendszert tartalmaz.

Előfeltételek

Ez a cikk feltételezi, hogy már telepített egy SLES-t vagy openSU-t Standard kiadás linuxos operációs rendszert egy virtuális merevlemezre. A .vhd-fájlok létrehozásához több eszköz is létezik. Használhat például egy virtualizációs megoldást, például a Hyper-V-t. Útmutatást a Hyper-V telepítése és virtuális gép létrehozása című témakörben talál.

SLES/openSU Standard kiadás Ugrás telepítési megjegyzései

  • A Linux-rendszerképek 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.
  • Az Azure nem támogatja a Windows Hard Disk Image (.vhdx) fájlokat. A virtuális gépeken kívül csak a VHD-fájlok (.vhd) támogatottak. A lemezt a Hyper-V Managerrel vagy a Convert-VHD parancsmaggal konvertálhatja VHD formátumba.
  • Azure-támogatás Gen1 (BIOS boot) és Gen2 (UEFI boot) virtuális gépeket.
  • A virtuális fájlfoglalási tábla (VFAT) kernelmodulját engedélyezni kell a kernelben.
  • Ne konfiguráljon felcserélési partíciót az operációsrendszer-lemezen. A Linux-ügynök konfigurálható úgy, hogy swapfájlt hozzon létre az ideiglenes erőforráslemezen. A cikk későbbi lépései további információt nyújtanak a felcserélési terület konfigurálásáról.
  • Az Azure összes virtuális merevlemezének 1 MB-hoz igazított virtuális méretnek kell lennie. Amikor nyers lemezről VHD-re konvertál, győződjön meg arról, hogy a nyers lemez mérete 1 MB többszöröse az átalakítás előtt. További információ: Általános Linux telepítési megjegyzések.

Megjegyzés:

A Cloud-init 21.2-es vagy újabb verziója eltávolítja a felhasználó által definiált függvényre (UDF) vonatkozó követelményt. A modul engedélyezése nélkül udf azonban a CD-ROM nem fog csatlakoztatni a kiépítés során, ami megakadályozza az egyéni adatok alkalmazását. A megkerülő megoldás a felhasználói adatok alkalmazása. Az egyéni adatokkal ellentétben azonban a felhasználói adatok nincsenek titkosítva. További információ: Felhasználói adatformátumok a cloud-init dokumentációjában.

A SU Standard kiadás Studio használata

A SU Standard kiadás Studio egyszerűen létrehozhatja és kezelheti az SLES-t, és megnyithatja az OpenSU Standard kiadás Leap-rendszerképeket az Azure-hoz és a Hyper-V-hez. SU Standard kiadás Studio az ajánlott módszer a saját SLES és openSU Standard kiadás Leap képek testreszabásához.

A saját VHD készítésének alternatívájaként az SU Standard kiadás a BYOS (saját előfizetés) lemezképeit is közzéteszi az SLES-hez a VM Depotban.

SLES előkészítése az Azure-hoz

  1. Szükség esetén konfigurálja az Azure- és Hyper-V-modulokat.

    Ha a szoftver hipervizor nem Hyper-V, más modulokat kell hozzáadni a kezdeti RAM-lemezhez (initramfs), hogy sikeresen elinduljon az Azure-ban.

    Szerkessze a /etc/dracut.conf fájlt, és adja hozzá a következő sort a fájlhoz:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Futtassa a dracut parancsot az initramfs fájl újraépítéséhez:

    sudo dracut --verbose --force
    
  2. Állítsa be a soros konzolt.

    A soros konzol sikeres használatához több változót kell beállítania az /etc/defaults/grub fájlban, és újra létre kell hoznia a GRUB-t a kiszolgálón:

    # Add console=ttyS0 and earlyprintk=ttS0 to the variable.
    # Remove "splash=silent" and "quiet" options.
    GRUB_CMDLINE_LINUX_DEFAULT="audit=1 no-scroll fbcon=scrollback:0 mitigations=auto security=apparmor crashkernel=228M,high crashkernel=72M,low console=ttyS0 earlyprintk=ttyS0"
    
    # Add "console serial" to GRUB_TERMINAL.
    GRUB_TERMINAL="console serial"
    
    # Set the GRUB_SERIAL_COMMAND variable.
    
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
    
    /usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
    
  3. Regisztrálja a SU Standard kiadás Linux Enterprise rendszert, hogy lehetővé tegye a frissítések letöltését és a csomagok telepítését.

  4. Frissítse a rendszert a legújabb javításokkal:

    sudo zypper update
    
  5. Telepítse az Azure Linux virtuálisgép-ügynököt (waagent) és a cloud-initet:

    sudo SUSEConnect -p sle-module-public-cloud/15.2/x86_64  (SLES 15 SP2)
    sudo zypper refresh
    sudo zypper install python-azure-agent
    sudo zypper install cloud-init
    
  6. Indításkor engedélyezze waagent és indítsa el a cloud-initet:

    sudo systemctl enable  waagent
    sudo systemctl enable cloud-init-local.service
    sudo systemctl enable cloud-init.service
    sudo systemctl enable cloud-config.service
    sudo systemctl enable cloud-final.service
    sudo systemctl daemon-reload
    sudo cloud-init clean
    
  7. Frissítse a cloud-init konfigurációt:

    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg
    datasource_list: [ Azure ]
    datasource:
        Azure:
            apply_network_config: False
    
    EOF
    
    sudo cat <<EOF | sudo tee  /etc/cloud/cloud.cfg.d/05_logging.cfg
    # 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
    
    # Make sure mounts and disk_setup are in the init stage:
    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
    
  8. Ha fel szeretne csatlakoztatni, formázni és létrehozni egy felcserélési partíciót, az egyik lehetőség az, hogy minden egyes virtuális gép létrehozásakor felhőbeli konfigurációt ad át.

    Egy másik lehetőség a felhőbeli init direktíva használata a lemezképen a felcserélési terület konfigurálásához minden alkalommal, amikor a virtuális gép létrejön:

    cat  <<EOF | sudo tee -a /etc/systemd/system.conf
    'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"'
    EOF
    
    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/00-azure-swap.cfg
    #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"]
      - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"]
    EOF
    
  9. Korábban az Azure Linux-ügynökkel automatikusan konfigurálták a helycserét 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. Mivel a cloud-init most már kezeli ezt a lépést, nem szabad az Azure Linux-ügynököt használnia az erőforráslemez formázásához vagy a felcserélési fájl létrehozásához. A /etc/waagent.conf megfelelő módosításához használja az alábbi parancsokat:

    sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=auto/g' /etc/waagent.conf
    sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/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
    

    Megjegyzés:

    Ha 21.2-nél korábbi cloud-init verziót használ, győződjön meg arról, hogy a udf modul engedélyezve van. Az eltávolítás vagy letiltás kiépítési vagy rendszerindítási hibát fog okozni. A Cloud-init 21.2-es vagy újabb verziója eltávolítja az UDF-követelményt.

  10. Győződjön meg arról, hogy a /etc/fstab fájl hivatkozik a lemezre az UUID (by-uuid) használatával.

  11. Távolítsa el az udev-szabályokat és a hálózati adapter konfigurációs fájljait, hogy ne generáljon statikus szabályokat az Ethernet-adapterekhez. Ezek a szabályok problémákat okozhatnak, ha virtuális gépet klónoz a Microsoft Azure-ban vagy a Hyper-V-ben.

    sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
    sudo rm -f /etc/udev/rules.d/85-persistent-net-cloud-init.rules
    sudo rm -f /etc/sysconfig/network/ifcfg-eth*
    
  12. Javasoljuk, hogy szerkessze az /etc/sysconfig/network/dhcp fájlt, és módosítsa a paramétert a DHCLIENT_SET_HOSTNAME következőre:

    DHCLIENT_SET_HOSTNAME="no"
    
  13. A /etc/sudoers fájlban fűzzön megjegyzést, vagy távolítsa el a következő sorokat, ha léteznek:

    Defaults targetpw   # Ask for the password of the target user i.e. root
    ALL    ALL=(ALL) ALL   # WARNING! Only use this setting together with 'Defaults targetpw'!
    
  14. Győződjön meg arról, hogy a Secure Shell-kiszolgáló (SSH) telepítve van, és úgy van konfigurálva, hogy indításkor induljon el:

    sudo systemctl enable sshd
    
  15. A cloud-init szakasz tisztítása:

    sudo cloud-init clean --seed --logs
    
  16. Futtassa az alábbi parancsokat a virtuális gép bontásához és az Azure-beli üzembe helyezéshez való előkészítéséhez.

    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.

    sudo rm -f /var/log/waagent.log
    sudo waagent -force -deprovision+user
    sudo export HISTSIZE=0
    sudo rm -f ~/.bash_history
    

OpenSU előkészítése Standard kiadás 15.2+

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

  2. Válassza a Csatlakozás lehetőséget a virtuális gép ablakának megnyitásához.

  3. Egy terminálban futtassa a parancsot zypper lr. Ha ez a parancs az alábbi példához hasonló kimenetet ad vissza, az adattárak a várt módon vannak konfigurálva, és nincs szükség módosításra. (A verziószámok eltérhetnek.)

    # Alias Name Enabled Refresh
    1 Cloud:Tools_15.2 Cloud:Tools_15.2 Igen Igen
    2 openSU Standard kiadás_15.2_OSS openSU Standard kiadás_15.2_OSS Igen Igen
    3 openSU Standard kiadás_15.2_Frissítések openSU Standard kiadás_15.2_Frissítések Igen Igen

    Ha a parancs a "Nincs definiált adattár" értéket adja vissza, az alábbi parancsokkal adja hozzá ezeket az adattárakat:

    sudo zypper ar -f http://download.opensuse.org/repositories/Cloud:Tools/openSUSE_15.2 Cloud:Tools_15.2
    sudo zypper ar -f https://download.opensuse.org/distribution/15.2/repo/oss openSUSE_15.2_OSS
    sudo zypper ar -f http://download.opensuse.org/update/15.2 openSUSE_15.2_Updates
    

    Ezután a parancs zypper lr ismételt futtatásával ellenőrizheti, hogy az adattárak hozzáadva lettek-e. Ha az egyik megfelelő frissítési adattár nincs engedélyezve, engedélyezze az alábbi paranccsal:

    sudo zypper mr -e [NUMBER OF REPOSITORY]
    
  4. Frissítse a kernelt a legújabb elérhető verzióra:

    sudo zypper up kernel-default
    

    Vagy frissítse az operációs rendszert az összes legújabb javítással:

    sudo zypper update
    
  5. Telepítse az Azure Linux-ügynököt:

    sudo zypper install WALinuxAgent
    
  6. Módosítsa a rendszermag rendszerindítási sorát a GRUB-konfigurációban, hogy más kernelparamétereket is 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 az alapértelmezett 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 esetén. Ezenkívül távolítsa el a következő paramétereket a kernel rendszerindító sorából, ha léteznek:

     libata.atapi_enabled=0 reserve=0x1f0,0x8
    
  7. Javasoljuk, hogy szerkessze az /etc/sysconfig/network/dhcp fájlt, és módosítsa a paramétert DHCLIENT_SET_HOSTNAME a következő beállításra:

     DHCLIENT_SET_HOSTNAME="no"
    
  8. A /etc/sudoers fájlban fűzzön megjegyzést, vagy távolítsa el a következő sorokat, ha léteznek. Ez egy fontos lépés.

    Defaults targetpw   # ask for the password of the target user i.e. root
    ALL    ALL=(ALL) ALL   # WARNING! Only use this together with 'Defaults targetpw'!
    
  9. 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.

  10. 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 csatolt helyi erőforráslemez használatával az Azure-on való üzembe helyezés után. A helyi erőforráslemez egy ideiglenes lemez, és a virtuális gép megszűnésekor ki lesz ürítve.

    Az Azure Linux-ügynök telepítése után módosítsa a paramétereket a /etc/waagent.conf fájlban az alábbiak szerint:

    ResourceDisk.Format=n
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=n
    ResourceDisk.SwapSizeMB=2048    ## NOTE: set the size to whatever you need it to be.
    
  11. Győződjön meg arról, hogy az Azure Linux-ügynök indításkor fut:

    sudo systemctl enable waagent.service
    
  12. Futtassa az alábbi parancsokat a virtuális gép bontásához és az Azure-beli üzembe helyezéshez való előkészítéséhez.

    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.

        sudo rm -f ~/.bash_history # Remove current user history
        sudo rm -rf /var/lib/waagent/
        sudo rm -f /var/log/waagent.log
        sudo waagent -force -deprovision+user
        sudo rm -f ~/.bash_history # Remove root user history
        sudo export HISTSIZE=0
    
  13. Válassza a Művelet>leállítása lehetőséget a Hyper-V Kezelőben.

Következő lépések

Most már készen áll arra, hogy a SU Standard kiadás 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.