Een virtuele Oracle Linux VM voor Azure voorbereiden

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

In dit artikel wordt ervan uitgegaan dat u al een Oracle Linux-besturingssysteem hebt geïnstalleerd op een virtuele harde schijf. Er bestaan meerdere hulpprogramma's om VHD-bestanden te maken, bijvoorbeeld een virtualisatieoplossing zoals Hyper-V. Zie De Hyper-V-rol installeren en een virtuele machine configureren voor instructies.

Oracle Linux-installatieopmerkingen

  • Zie ook Algemene linux-installatieopmerkingen voor meer tips over het voorbereiden van Linux voor Azure.
  • Hyper-V en ondersteuning voor Azure Oracle Linux met de Unbreakable Enterprise Kernel (UEK) of de Red Hat Compatibele Kernel.
  • De UEK2 van Oracle wordt niet ondersteund op Hyper-V en Azure, omdat deze niet de vereiste stuurprogramma's bevat.
  • 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 cmdlet convert-vhd.
  • Kernelondersteuning voor het koppelen van UDF-bestandssystemen is vereist. Bij het eerste opstarten in Azure wordt de inrichtingsconfiguratie doorgegeven aan de Virtuele Linux-machine via UDF-geformatteerde media die aan de gast zijn gekoppeld. De Azure Linux-agent moet het UDF-bestandssysteem kunnen koppelen om de configuratie ervan te lezen en de VIRTUELE machine in te richten.
  • Bij het installeren van het Linux-systeem raden we u aan standaardpartities te gebruiken in plaats van LVM (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 indien gewenst worden gebruikt op gegevensschijven.
  • Linux-kernelversies ouder dan 2.6.37 bieden geen ondersteuning voor NUMA op Hyper-V met grotere VM-grootten. Dit probleem heeft voornamelijk invloed op oudere distributies met behulp van de upstream Red Hat 2.6.32-kernel en is opgelost in Oracle Linux 6.6 en hoger.
  • Configureer geen wisselpartitie op de besturingssysteemschijf.
  • 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 Installatieopmerkingen voor Linux voor meer informatie.
  • Zorg ervoor dat de Addons opslagplaats is ingeschakeld. Bewerk het bestand /etc/yum.repos.d/public-yum-ol6.repo(Oracle Linux 6) of /etc/yum.repos.d/public-yum-ol7.repo(Oracle Linux 7) en wijzig de regel enabled=0enabled=1 onder [ol6_addons] of [ol7_addons] in dit bestand.

Oracle Linux 6.X

Belangrijk

Houd rekening met Oracle Linux 6.x is al EOL. Oracle Linux versie 6.10 biedt els-ondersteuning, die eindigt op 07/2024.

U moet specifieke configuratiestappen in het besturingssysteem uitvoeren om de virtuele machine uit te voeren in Azure.

  1. Selecteer de virtuele machine in het middelste deelvenster van Hyper-V-beheer.

  2. Klik op Verbinding maken om het venster voor de virtuele machine te openen.

  3. Verwijder NetworkManager door de volgende opdracht uit te voeren:

    sudo rpm -e --nodeps NetworkManager
    

    Notitie

    Als het pakket nog niet is geïnstalleerd, mislukt deze opdracht met een foutbericht. Deze berichten worden verwacht.

  4. Maak een bestand met de naam netwerk in de /etc/sysconfig/ map met de volgende tekst:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Maak een bestand met de naam ifcfg-eth0 in de /etc/sysconfig/network-scripts/ map met de volgende tekst:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. Udev-regels wijzigen om te voorkomen dat statische regels voor de Ethernet-interface(s) worden gegenereerd. Deze regels kunnen problemen veroorzaken bij het klonen van een virtuele machine in Microsoft Azure of Hyper-V:

    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. Zorg ervoor dat de netwerkservice begint bij het opstarten door de volgende opdracht uit te voeren:

    sudo chkconfig network on
    
  8. Installeer python-pyasn1 door de volgende opdracht uit te voeren:

    sudo yum install python-pyasn1
    
  9. Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Open hiervoor '/boot/grub/menu.lst' in een teksteditor en zorg ervoor dat de kernel de volgende parameters bevat:

    console=ttyS0 earlyprintk=ttyS0
    

    Deze instelling zorgt ervoor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen.

    Naast het bovenstaande raden we u aan om de volgende parameters te verwijderen :

    rhgb quiet crashkernel=auto
    

    Grafisch en stil opstarten is niet handig in een cloudomgeving waarin alle logboeken naar de seriële poort moeten worden verzonden.

    De crashkernel optie kan desgewenst worden geconfigureerd, maar houd er rekening mee dat deze parameter de hoeveelheid beschikbaar geheugen in de VIRTUELE machine vermindert met 128 MB of meer, wat mogelijk problematisch is voor de kleinere VM-grootten.

  10. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Dit is meestal de standaardwaarde.

  11. Installeer de Azure Linux-agent door de volgende opdracht uit te voeren. De nieuwste versie is 2.0.15.

    sudo yum install WALinuxAgent
    

    Als u het WALinuxAgent-pakket installeert, worden de NetworkManager- en NetworkManager-kabouterpakketten verwijderd als ze nog niet zijn verwijderd, zoals beschreven in stap 2.

  12. Maak geen wisselruimte op de besturingssysteemschijf.

    De Azure Linux-agent kan automatisch wisselruimte configureren met behulp van de lokale resourceschijf die is gekoppeld aan de VIRTUELE machine na inrichting in Azure. De lokale resourceschijf is een tijdelijke schijf en kan worden geleegd wanneer de vm ongedaan wordt gemaakt. Nadat u de Azure Linux-agent hebt geïnstalleerd (zie vorige stap), wijzigt u de volgende parameters in /etc/waagent.conf op de juiste manier:

    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. Voer de volgende opdrachten uit om de inrichting van de virtuele machine ongedaan te maken en deze voor te bereiden op inrichting in Azure:

    sudo waagent -force -deprovision
    sudo export HISTSIZE=0
    sudo logout
    
  14. Klik op Actie -> Afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.


Oracle Linux 7.0 en hoger

Wijzigingen in Oracle Linux 7

Het voorbereiden van een virtuele Oracle Linux 7-machine voor Azure is vergelijkbaar met Oracle Linux 6, maar er zijn verschillende belangrijke verschillen die u moet noteren:

  • ondersteuning voor Azure Oracle Linux met de Unbreakable Enterprise Kernel (UEK) of de Red Hat Compatibele Kernel. Oracle Linux met UEK wordt aanbevolen.
  • Het NetworkManager-pakket conflicteert niet meer met de Azure Linux-agent. Dit pakket is standaard geïnstalleerd en we raden u aan het pakket niet te verwijderen.
  • GRUB2 wordt nu gebruikt als de standaard bootloader, dus de procedure voor het bewerken van kernelparameters is gewijzigd (zie hieronder).
  • XFS is nu het standaardbestandssysteem. Het ext4-bestandssysteem kan desgewenst nog steeds worden gebruikt.

Configuratiestappen

  1. Selecteer in Hyper-V-beheer de virtuele machine.

  2. Klik op Verbinding maken om een consolevenster voor de virtuele machine te openen.

  3. Maak een bestand met de naam netwerk in de /etc/sysconfig/ map met de volgende tekst:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. Maak een bestand met de naam ifcfg-eth0 in de /etc/sysconfig/network-scripts/ map met de volgende tekst:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  5. Udev-regels wijzigen om te voorkomen dat statische regels voor de Ethernet-interface(s) worden gegenereerd. Deze regels kunnen problemen veroorzaken bij het klonen van een virtuele machine in Microsoft Azure of Hyper-V:

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    
  6. Zorg ervoor dat de netwerkservice begint bij het opstarten door de volgende opdracht uit te voeren:

    sudo chkconfig network on
    
  7. Installeer het python-pyasn1-pakket door de volgende opdracht uit te voeren:

    sudo yum install python3-pyasn1
    
  8. Voer de volgende opdracht uit om de huidige yum-metagegevens te wissen en eventuele updates te installeren:

    sudo yum clean all
    sudo yum -y update
    
  9. Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Open hiervoor '/etc/default/grub' in een teksteditor en bewerk de GRUB_CMDLINE_LINUX parameter, bijvoorbeeld:

    GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
    

    Dit zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. Ook worden de naamconventies voor NIC's in Oracle Linux 7 uitgeschakeld met de Unbreakable Enterprise Kernel. Naast het bovenstaande is het raadzaam om de volgende parameters te verwijderen :

       rhgb quiet crashkernel=auto
    

    Grafisch en stil opstarten is niet handig in een cloudomgeving waarin alle logboeken naar de seriële poort moeten worden verzonden.

    De crashkernel optie kan desgewenst worden geconfigureerd, maar houd er rekening mee dat deze parameter de hoeveelheid beschikbaar geheugen in de VIRTUELE machine met 128 MB of meer vermindert. Dit kan problematisch zijn voor de kleinere VM-grootten.

  10. Zodra u klaar bent met het bewerken van '/etc/default/grub' per bovenstaande, voert u de volgende opdracht uit om de grub-configuratie opnieuw te bouwen:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  11. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Dit is meestal de standaardwaarde.

  12. Installeer de Azure Linux-agent en afhankelijkheden:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent
    
  13. Cloud-init installeren om de inrichting af te handelen

    sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
  14. Waagent configureren voor cloud-init

    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. Configuratie wisselen. Maak geen wisselruimte op de besturingssysteemschijf.

    Voorheen werd de Azure Linux-agent automatisch gebruikt om wisselruimte te configureren met behulp van de lokale resourceschijf die is gekoppeld aan de virtuele machine nadat de virtuele machine is ingericht in Azure. Dit wordt nu echter verwerkt door cloud-init. U moet de Linux-agent niet gebruiken om de resourceschijf te formatteren om het wisselbestand te maken. Wijzig de volgende parameters op /etc/waagent.conf de juiste manier:

    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
    

    Als u koppelen, opmaken en wisselen wilt maken, kunt u het volgende doen:

    • Geef dit door als een cloud-init-configuratie telkens wanneer u een VIRTUELE machine maakt
    • Gebruik een cloud-init-instructie die is gebakken in de installatiekopieën die dit doen telkens wanneer de virtuele machine wordt gemaakt:
    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. Voer de volgende opdrachten uit om de inrichting van de virtuele machine ongedaan te maken en deze voor te bereiden op inrichting in Azure:

    sudo cloud-init clean
    sudo rm -f /var/log/waagent.log
    sudo waagent -force -deprovision
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    

    Notitie

    Als u een specifieke virtuele machine migreert en geen gegeneraliseerde installatiekopieën wilt maken, slaat u de inrichtingsstap over.

  17. Klik op Actie -> Afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.

Volgende stappen

U kunt nu uw Oracle Linux.vhd gebruiken om nieuwe virtuele machines 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.