Delen via


Een op Red Hat gebaseerde virtuele machine voor Azure voorbereiden

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

In dit artikel leert u hoe u een virtuele Machine (RHEL) van Red Hat Enterprise Linux (VM) voorbereidt voor gebruik in Azure. De versies van RHEL die in dit artikel worden behandeld, zijn 6.X, 7.X en 8.X. De hypervisors voor voorbereiding die in dit artikel worden behandeld, zijn Hyper-V, op kernel gebaseerde VM (KVM) en VMware.

Zie de Red Hat Cloud Access-website en RHEL uitvoeren in Azure voor meer informatie over geschiktheidsvereisten voor deelname aan het Red Hat Cloud Access-programma. Zie Azure Image Builder voor manieren om het bouwen van RHEL-installatiekopieën te automatiseren.

Notitie

Houd rekening met versies die aan hun einde van de levensduur (EOL) staan en die niet meer worden ondersteund door Red Hat. Geüploade afbeeldingen die zich op of buiten EOL bevinden, worden op redelijke basis ondersteund. Zie de Red Hat Product Life Cycles voor meer informatie.

Hyper-V-beheer

In deze sectie wordt beschreven hoe u een RHEL 6-, RHEL 7- of RHEL 8-VM voorbereidt met Hyper-V-beheer.

Vereisten

In deze sectie wordt ervan uitgegaan dat u al een ISO-bestand hebt verkregen van de Website van Red Hat en de RHEL-installatiekopie hebt geïnstalleerd op een virtuele harde schijf (VHD). Zie De Hyper-V-rol installeren en een virtuele machine configureren voor meer informatie over het gebruik van Hyper-V-beheer om een installatiekopieën van een besturingssysteem te installeren.

RHEL-installatieopmerkingen

  • Azure biedt geen ondersteuning voor de VHDX-indeling. ondersteuning voor Azure alleen vaste VHD. U kunt Hyper-V-beheer gebruiken om de schijf te converteren naar VHD-indeling of u kunt de convert-vhd cmdlet gebruiken. Als u VirtualBox gebruikt, selecteert u Vaste grootte in plaats van de standaardoptie dynamisch toegewezen wanneer u de schijf maakt.
  • ondersteuning voor Azure s Gen1 -VM's (BIOS boot) en Gen2 (UEFI boot).
  • De maximale grootte die is toegestaan voor de VHD is 1023 GB.
  • De vfat-kernelmodule moet zijn ingeschakeld in de kernel.
  • Logical Volume Manager (LVM) wordt ondersteund en kan worden gebruikt op de besturingssysteemschijf of gegevensschijven in virtuele Azure-machines. Over het algemeen raden we u aan standaardpartities op de besturingssysteemschijf te gebruiken in plaats van LVM. Deze procedure voorkomt dat de LVM-naam conflicteert met gekloonde VM's, met name als u ooit een besturingssysteemschijf moet koppelen aan een andere identieke VM voor probleemoplossing. Zie de LVM - en RAID-documentatie voor meer informatie.
  • Kernelondersteuning voor het koppelen van UDF-bestandssystemen (Universal Disk Format) is vereist. Bij het opstarten in Azure geeft de door UDF geformatteerde media die aan de gast zijn gekoppeld de inrichtingsconfiguratie door aan de Virtuele Linux-machine. De Azure Linux-agent moet het UDF-bestandssysteem kunnen koppelen om de configuratie ervan te lezen en de VIRTUELE machine in te richten. Zonder deze stap mislukt het inrichten.
  • Configureer geen wisselpartitie op de schijf van het besturingssysteem. Lees de volgende stappen voor meer informatie.
  • 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. Lees de volgende stappen voor meer informatie. Zie ook opmerkingen bij de installatie van Linux.

Notitie

Cloud-init >= 21.2 verwijdert de UDF-vereiste. Als de UDF-module echter niet is ingeschakeld, wordt de CD-ROM niet bevestigd tijdens het inrichten, waardoor aangepaste gegevens niet kunnen worden toegepast. Een tijdelijke oplossing is het toepassen van aangepaste gegevens met behulp van gebruikersgegevens. In tegenstelling tot aangepaste gegevens worden gebruikersgegevens niet versleuteld. Zie Indelingen voor gebruikersgegevens voor meer informatie.

RHEL 6 met Hyper-V-beheer

Belangrijk

Op 30 november 2020 bereikte RHEL 6 het einde van de onderhoudsfase. De onderhoudsfase wordt gevolgd door de verlengde levensduurfase. Als RHEL 6 uit de fase Volledig/Onderhoud overstapt, raden we u ten zeerste aan om een upgrade uit te voeren naar RHEL 7, 8 of 9. Als u OP RHEL 6 moet blijven, raden we u aan de RHEL Extended Life Cycle Support-invoegtoepassing toe te voegen.

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

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

  3. In RHEL 6 NetworkManager kan dit de Azure Linux-agent verstoren. Verwijder dit pakket:

    sudo rpm -e --nodeps NetworkManager
    
  4. Maak of bewerk het /etc/sysconfig/network bestand en voeg de volgende tekst toe:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Maak of bewerk het /etc/sysconfig/network-scripts/ifcfg-eth0 bestand en voeg de volgende tekst toe:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. Verplaats (of verwijder) de udev-regels om te voorkomen dat statische regels voor de Ethernet-interface worden gegenereerd. Deze regels veroorzaken problemen wanneer u een VIRTUELE machine kloont in Azure of Hyper-V:

    Waarschuwing

    Veel v5- en nieuwere VM-grootten vereisen versneld netwerken. Als deze niet is ingeschakeld, wijst NetworkManager hetzelfde IP-adres toe aan alle virtuele functie-interfaces. Als u dubbele IP-adressen wilt voorkomen, moet u deze udev-regel opnemen bij het migreren naar een nieuwere grootte.

    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
    

    Notitie

    Wanneer u versneld netwerken gebruikt, moet de synthetische interface die wordt gemaakt, worden geconfigureerd om onbeheerd te zijn met behulp van een udev-regel. Met deze actie voorkomt u dat NetworkManager hetzelfde IP-adres als de primaire interface wordt toegewezen.

    Ga als volgende te werk om deze toe te passen:

    sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
    # Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
    # This interface is transparentlybonded to the synthetic interface,
    # so NetworkManager should just ignore any SRIOV interfaces.
    SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1"
    EOF
    
  7. Zorg ervoor dat de netwerkservice begint bij het opstarten:

    sudo chkconfig network on
    
  8. Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  9. Het WALinuxAgent-pakket, WALinuxAgent-<version>is naar de Red Hat-opslagplaats voor extra's gepusht. Schakel de opslagplaats extra's in:

    sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  10. Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze wijziging wilt uitvoeren, opent /boot/grub/menu.lst u deze in een teksteditor. Zorg ervoor dat de standaardkernel de volgende parameters bevat:

    console=ttyS0 earlyprintk=ttyS0
    

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

    U wordt ook aangeraden de volgende parameters te verwijderen:

    rhgb quiet crashkernel=auto
    

    Grafische en stille laarzen zijn niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden. U kunt de crashkernel geconfigureerde optie desgewenst laten staan. Deze parameter vermindert de hoeveelheid beschikbaar geheugen in de VIRTUELE machine met 128 MB of meer. Deze configuratie kan een probleem zijn voor kleinere VM-grootten.

  11. Zorg ervoor dat de SSH-server (Secure Shell) is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Dit is meestal de standaardinstelling. Wijzig /etc/ssh/sshd_config dit om de volgende regel op te nemen:

    ClientAliveInterval 180
    
  12. Installeer de Azure Linux-agent:

    sudo yum install WALinuxAgent
    sudo chkconfig waagent on
    

    Als u het WALinuxAgent-pakket installeert, worden de NetworkManager en NetworkManager-gnome pakketten verwijderd als ze nog niet zijn verwijderd in stap 3.

  13. 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 nadat de VIRTUELE machine is ingericht in Azure. De lokale resourceschijf is een tijdelijke schijf en kan worden geleegd als de vm ongedaan is gemaakt. Nadat u de Azure Linux-agent in de vorige stap hebt geïnstalleerd, wijzigt u de volgende parameters op /etc/waagent.conf de juiste manier:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    ## NOTE: set this to whatever you need it to be.
    
  14. Registratie van het abonnement ongedaan maken (indien nodig):

    sudo subscription-manager unregister
    
  15. Maak de inrichting van de VIRTUELE machine ongedaan en bereid deze voor op inrichting in Azure:

    Notitie

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

        sudo waagent -force -deprovision
        sudo export HISTSIZE=0
    
  16. Selecteer Actie>afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.

RHEL 7 met Hyper-V-beheer

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

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

  3. Maak of bewerk het /etc/sysconfig/network bestand en voeg de volgende tekst toe:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. Maak of bewerk het /etc/sysconfig/network-scripts/ifcfg-eth0 bestand en voeg de volgende tekst toe:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    PERSISTENT_DHCLIENT=yes
    NM_CONTROLLED=yes
    

    Notitie

    Wanneer u versneld netwerken gebruikt, moet de synthetische interface die wordt gemaakt, worden geconfigureerd om onbeheerd te zijn met behulp van een udev-regel. Met deze actie voorkomt u dat NetworkManager hetzelfde IP-adres als de primaire interface wordt toegewezen.

    Ga als volgende te werk om deze toe te passen:

    sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
    # Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
    # This interface is transparentlybonded to the synthetic interface,
    # so NetworkManager should just ignore any SRIOV interfaces.
    SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1"
    EOF
    
  5. Zorg ervoor dat de netwerkservice begint bij het opstarten:

    sudo systemctl enable network
    
  6. Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  7. Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze wijziging wilt uitvoeren, opent /etc/default/grub u deze in een teksteditor en bewerkt u de GRUB_CMDLINE_LINUX parameter. Bijvoorbeeld:

    GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0 net.ifnames=0"
    GRUB_TERMINAL_OUTPUT="serial console"
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
    ENABLE_BLSCFG=true
    

    Notitie

    Als ENABLE_BLSCFG=false aanwezig is in plaats van ENABLE_BLSCFG=true, /etc/default/grub hulpprogramma's zoals grubedit of gubby, die afhankelijk zijn van de Boot Loader Specification (BLS) voor het beheren van opstartvermeldingen en configuraties, werken mogelijk niet correct in RHEL 8 en 9. Als ENABLE_BLSCFG deze niet aanwezig is, is falsehet standaardgedrag.

    Deze wijziging zorgt er ook voor dat alle consoleberichten naar de eerste seriële poort worden verzonden en interactie mogelijk maken met de seriële console, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. Met deze configuratie worden ook de nieuwe RHEL 7-naamconventies voor netwerkinterfacekaarten (NIC's) uitgeschakeld.

    rhgb quiet crashkernel=auto
    

    Grafische en stille laarzen zijn niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden. U kunt de crashkernel geconfigureerde optie desgewenst laten staan. Deze parameter vermindert de hoeveelheid beschikbaar geheugen in de VIRTUELE machine met 128 MB of meer, wat een probleem kan zijn voor kleinere VM-grootten.

  8. Nadat u klaar bent met bewerken /etc/default/grub, voert u de volgende opdracht uit om de grub-configuratie opnieuw te bouwen:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    

    Notitie

    Als u een UEFI-VM uploadt, is grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfgde opdracht om grub bij te werken.

  9. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Dit is meestal de standaardinstelling. Wijzig /etc/ssh/sshd_config dit om de volgende regel op te nemen:

    ClientAliveInterval 180
    
  10. Het WALinuxAgent-pakket, WALinuxAgent-<version>is naar de Red Hat-opslagplaats voor extra's gepusht. Schakel de opslagplaats extra's in:

    sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  11. Installeer de Azure Linux-agent cloud-initen andere benodigde hulpprogramma's:

    sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons
    sudo systemctl enable waagent.service
    sudo systemctl enable cloud-init.service
    
  12. Configureren cloud-init voor het afhandelen van de inrichting:

    1. Configureren waagent voor cloud-init:

      sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=auto/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
      

      Notitie

      Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, stelt u deze in Provisioning.Agent=disabled voor de /etc/waagent.conf configuratie.

    2. Koppels configureren:

      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
      
    3. Configureer de Azure-gegevensbron:

      sudo 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
      
    4. Als dit is geconfigureerd, verwijdert u het bestaande wisselbestand:

      if [[ -f /mnt/resource/swapfile ]]; then
      echo "Removing swapfile" #RHEL uses a swapfile by default
      swapoff /mnt/resource/swapfile
      rm /mnt/resource/swapfile -f
      fi
      
    5. Logboekregistratie configureren cloud-init :

      sudo echo "Add console log file"
      sudo 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
      
      
  13. Configuratie wisselen:

    • Maak geen wisselruimte op de besturingssysteemschijf.

      Voorheen werd de Azure Linux-agent gebruikt om wisselruimte automatisch te configureren met behulp van de lokale resourceschijf die aan de VIRTUELE machine is gekoppeld nadat de VIRTUELE machine is ingericht in Azure. Deze actie wordt nu 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:

      ResourceDisk.Format=n
      ResourceDisk.EnableSwap=n
      
    • Als u de wissel wilt koppelen, opmaken en maken, kunt u het volgende doen:

      • Geef deze code door als een cloud-init configuratie telkens wanneer u een virtuele machine maakt via aangepaste gegevens. We raden deze methode aan.

      • Gebruik een cloud-init instructie die is gebakken in de installatiekopieën die deze stap uitvoeren telkens wanneer de virtuele machine wordt gemaakt.

        sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
        sudo 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
        
  14. Als u de registratie van het abonnement ongedaan wilt maken, voert u de volgende opdracht uit:

    sudo subscription-manager unregister
    
  15. Maak de inrichting van de VIRTUELE machine ongedaan en bereid deze voor op inrichting in Azure:

    Let op

    Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, slaat u de inrichtingsstap over. Als u de opdracht waagent -force -deprovision+user uitvoert, wordt de bronmachine onbruikbaar. Deze stap is alleen bedoeld om een gegeneraliseerde installatiekopieën te maken.

    sudo rm -f /var/log/waagent.log
    sudo cloud-init clean
    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    
  16. Selecteer Actie>afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.

RHEL 8+ met Hyper-V-beheer

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

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

  3. Zorg ervoor dat de Network Manager-service begint bij het opstarten:

    sudo systemctl enable NetworkManager.service
    
  4. Configureer de netwerkinterface om automatisch te starten bij het opstarten en het Dynamic Host Configuration Protocol te gebruiken:

    sudo nmcli con mod eth0 connection.autoconnect yes ipv4.method auto
    

    Notitie

    Wanneer u versneld netwerken gebruikt, moet de synthetische interface die wordt gemaakt, worden geconfigureerd om onbeheerd te zijn met behulp van een udev-regel. Met deze actie voorkomt u dat NetworkManager hetzelfde IP-adres als de primaire interface wordt toegewezen.

    Ga als volgende te werk om deze toe te passen:

    sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
    # Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
    # This interface is transparentlybonded to the synthetic interface,
    # so NetworkManager should just ignore any SRIOV interfaces.
    SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1"
    EOF
    
  5. Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  6. Wijzig de kernelstartlijn in uw grub-configuratie zodat er meer kernelparameters voor Azure worden opgenomen en de seriële console wordt ingeschakeld.

  7. Huidige GRUB-parameters verwijderen:

    sudo grub2-editenv - unset kernelopts
    
  8. Bewerk /etc/default/grub in een teksteditor en voeg de volgende parameters toe:

    GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 earlyprintk=ttyS0 net.ifnames=0"
    GRUB_TERMINAL_OUTPUT="serial console"
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
    

    Deze wijziging zorgt er ook voor dat alle consoleberichten naar de eerste seriële poort worden verzonden en interactie mogelijk maken met de seriële console, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. Met deze configuratie worden ook de nieuwe naamconventies voor NIC's uitgeschakeld.

  9. U wordt aangeraden ook de volgende parameters te verwijderen:

    rhgb quiet crashkernel=auto
    

    Grafische en stille laarzen zijn niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden. U kunt de crashkernel geconfigureerde optie desgewenst laten staan. Deze parameter vermindert de hoeveelheid beschikbaar geheugen in de VIRTUELE machine met 128 MB of meer, wat een probleem kan zijn voor kleinere VM-grootten.

  10. Nadat u klaar bent met bewerken /etc/default/grub, voert u de volgende opdracht uit om de grub-configuratie opnieuw te bouwen:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    

    Voer voor een UEFI-VM de volgende opdracht uit:

    sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
    
  11. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Dit is meestal de standaardinstelling. Wijzig /etc/ssh/sshd_config dit om de volgende regel op te nemen:

    ClientAliveInterval 180
    
  12. Installeer de Azure Linux-agent cloud-initen andere benodigde hulpprogramma's:

    sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons
    sudo systemctl enable waagent.service
    sudo systemctl enable cloud-init.service
    
  13. Configureren cloud-init voor het afhandelen van de inrichting:

    1. Configureren waagent voor cloud-init:

      sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/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
      

      Notitie

      Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, stelt u deze in Provisioning.Agent=disabled voor de /etc/waagent.conf configuratie.

    2. Koppels configureren:

      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
      
    3. Configureer de Azure-gegevensbron:

      sudo 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
      
    4. Als dit is geconfigureerd, verwijdert u het bestaande wisselbestand:

      if [[ -f /mnt/resource/swapfile ]]; then
      echo "Removing swapfile" #RHEL uses a swapfile by defaul
      swapoff /mnt/resource/swapfile
      rm /mnt/resource/swapfile -f
      fi
      
    5. Logboekregistratie configureren cloud-init :

      sudo echo "Add console log file"
      sudo 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
      
  14. Configuratie wisselen:

    • Maak geen wisselruimte op de besturingssysteemschijf.

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

      ResourceDisk.Format=n
      ResourceDisk.EnableSwap=n
      
      • Geef deze code door als een cloud-init configuratie telkens wanneer u een virtuele machine maakt via aangepaste gegevens. We raden deze methode aan.

      • Gebruik een cloud-init instructie die is gebakken in de installatiekopieën die deze stap uitvoeren telkens wanneer de virtuele machine wordt gemaakt.

        sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
        sudo 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.device-timeout=2,x-systemd.requires=cloud-init.service", "0", "0"]
        EOF
        
  15. Als u de registratie van het abonnement ongedaan wilt maken, voert u de volgende opdracht uit:

    sudo subscription-manager unregister
    
  16. Voer de volgende opdrachten uit om de inrichting van de VIRTUELE machine ongedaan te maken en deze voor te bereiden voor inrichting in Azure:

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

    Let op

    Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, slaat u de inrichtingsstap over. Als u de opdracht waagent -force -deprovision+user uitvoert, wordt de bronmachine onbruikbaar. Deze stap is alleen bedoeld om een gegeneraliseerde installatiekopieën te maken.

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

KVM

In deze sectie wordt beschreven hoe u KVM gebruikt om een RHEL 6 - of RHEL 7-distributie voor te bereiden om te uploaden naar Azure.

RHEL 6 met KVM

Belangrijk

Op 30 november 2020 bereikte RHEL 6 het einde van de onderhoudsfase. De onderhoudsfase wordt gevolgd door de verlengde levensduurfase. Als RHEL 6 uit de fase Volledig/Onderhoud overstapt, raden we u ten zeerste aan om een upgrade uit te voeren naar RHEL 7, 8 of 9. Als u OP RHEL 6 moet blijven, raden we u aan de RHEL Extended Life Cycle Support-invoegtoepassing toe te voegen.

  1. Download de KVM-afbeelding van RHEL 6 van de Red Hat-website.

  2. Stel een hoofdwachtwoord in.

    Genereer een versleuteld wachtwoord en kopieer de uitvoer van de opdracht:

    sudo openssl passwd -1 changeme
    

    Stel een hoofdwachtwoord in met gastvis:

    sudo guestfish --rw -a <image-name>
    > <fs> run
    > <fs> list-filesystems
    > <fs> mount /dev/sda1 /
    > <fs> vi /etc/shadow
    > <fs> exit
    

    Wijzig het tweede veld van de hoofdgebruiker in !! het versleutelde wachtwoord.

  3. Maak een VIRTUELE machine in KVM op basis van de qcow2-installatiekopieën. Stel het schijftype in op qcow2 en stel het apparaatmodel van de virtuele netwerkinterface in op virtio. Start vervolgens de virtuele machine en meld u aan als hoofdmap.

  4. Maak of bewerk het /etc/sysconfig/network bestand en voeg de volgende tekst toe:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Maak of bewerk het /etc/sysconfig/network-scripts/ifcfg-eth0 bestand en voeg de volgende tekst toe:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. Verplaats (of verwijder) de udev-regels om te voorkomen dat statische regels voor de Ethernet-interface worden gegenereerd. Deze regels veroorzaken problemen wanneer u een VIRTUELE machine kloont in 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
    

    Notitie

    Wanneer u versneld netwerken gebruikt, moet de synthetische interface die wordt gemaakt, worden geconfigureerd om onbeheerd te zijn met behulp van een udev-regel. Met deze actie voorkomt u dat NetworkManager hetzelfde IP-adres als de primaire interface wordt toegewezen.

    Ga als volgende te werk om deze toe te passen:

    sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
    # Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
    # This interface is transparently bonded to the synthetic interface,
    # so NetworkManager should just ignore any SRIOV interfaces.
    SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1"
    EOF
    
  7. Zorg ervoor dat de netwerkservice begint bij het opstarten:

    sudo chkconfig network on
    
  8. Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  9. Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze configuratie wilt uitvoeren, opent /boot/grub/menu.lst u deze in een teksteditor. Zorg ervoor dat de standaardkernel de volgende parameters bevat:

    console=ttyS0 earlyprintk=ttyS0
    

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

    U wordt ook aangeraden de volgende parameters te verwijderen:

    rhgb quiet crashkernel=auto
    

    Grafische en stille laarzen zijn niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden. U kunt de crashkernel geconfigureerde optie desgewenst laten staan. Deze parameter vermindert de hoeveelheid beschikbaar geheugen in de VIRTUELE machine met 128 MB of meer, wat een probleem kan zijn voor kleinere VM-grootten.

  10. Hyper-V-modules toevoegen aan initramfs:

    Bewerk /etc/dracut.confen voeg de volgende inhoud toe:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Bouw initramfs opnieuw:

    sudo dracut -f -v
    
  11. Verwijderen cloud-init:

    sudo yum remove cloud-init
    
  12. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten:

    sudo chkconfig sshd on
    

    Wijzig /etc/ssh/sshd_config dit om de volgende regels op te nemen:

    PasswordAuthentication yes
    ClientAliveInterval 180
    
  13. Het WALinuxAgent-pakket, WALinuxAgent-<version>is naar de Red Hat-opslagplaats voor extra's gepusht. Schakel de opslagplaats extra's in:

    sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  14. Installeer de Azure Linux-agent:

    sudo yum install WALinuxAgent
    sudo chkconfig waagent on
    
  15. De Azure Linux-agent kan automatisch wisselruimte configureren met behulp van de lokale resourceschijf die is gekoppeld aan de VIRTUELE machine nadat de VIRTUELE machine is ingericht in Azure. De lokale resourceschijf is een tijdelijke schijf en kan worden geleegd als de vm ongedaan is gemaakt. Nadat u de Azure Linux-agent in de vorige stap hebt geïnstalleerd, wijzigt u de volgende parameters op /etc/waagent.conf de juiste manier:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    ## NOTE: set this to whatever you need it to be.
    
  16. Registratie van het abonnement ongedaan maken (indien nodig):

    sudo subscription-manager unregister
    
  17. Voer de volgende opdrachten uit om de inrichting van de VIRTUELE machine ongedaan te maken en deze voor te bereiden voor inrichting in Azure.

    Notitie

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

    sudo rm -rf /var/lib/waagent/
    sudo rm -f /var/log/waagent.log
    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    
  18. Sluit de VIRTUELE machine af in KVM.

  19. Converteer de qcow2-installatiekopieën naar de VHD-indeling.

    Notitie

    Er is een bekende fout in qemu-img-versies >=2.2.1 die resulteert in een onjuist opgemaakte VHD. Het probleem is opgelost in QEMU 2.6. U wordt aangeraden qemu-img 2.2.0 of lager te gebruiken of bij te werken naar 2.6 of hoger. Zie deze website voor meer informatie.

    Converteer eerst de afbeelding naar onbewerkte indeling:

    sudo qemu-img convert -f qcow2 -O raw rhel-6.9.qcow2 rhel-6.9.raw
    

    Zorg ervoor dat de grootte van de onbewerkte afbeelding is uitgelijnd met 1 MB. Als u dat niet doet, rondt u de grootte af om uit te lijnen met 1 MB:

    MB=$((1024*1024))
    size=$(qemu-img info -f raw --output json "rhel-6.9.raw" | \
    gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1)*$MB))
    sudo qemu-img resize rhel-6.9.raw $rounded_size
    

    Converteer de onbewerkte schijf naar een VHD met een vaste grootte:

    sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
    

    Of neem met qemu versie 2.6+ de force_size optie op:

    sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
    

RHEL 7 met KVM

  1. Download de KVM-afbeelding van RHEL 7 op de Website van Red Hat. In deze procedure wordt RHEL 7 gebruikt als voorbeeld.

  2. Stel een hoofdwachtwoord in.

    Genereer een versleuteld wachtwoord en kopieer de uitvoer van de opdracht:

    sudo openssl passwd -1 changeme
    

    Stel een hoofdwachtwoord in met gastvis:

    sudo  guestfish --rw -a <image-name>
    > <fs> run
    > <fs> list-filesystems
    > <fs> mount /dev/sda1 /
    > <fs> vi /etc/shadow
    > <fs> exit
    

    Wijzig het tweede veld van de hoofdgebruiker in !! het versleutelde wachtwoord.

  3. Maak een VIRTUELE machine in KVM op basis van de qcow2-installatiekopieën. Stel het schijftype in op qcow2 en stel het apparaatmodel van de virtuele netwerkinterface in op virtio. Start vervolgens de virtuele machine en meld u aan als hoofdmap.

  4. Maak of bewerk het /etc/sysconfig/network bestand en voeg de volgende tekst toe:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Maak of bewerk het /etc/sysconfig/network-scripts/ifcfg-eth0 bestand en voeg de volgende tekst toe:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    PERSISTENT_DHCLIENT=yes
    NM_CONTROLLED=yes
    

    Notitie

    Wanneer u versneld netwerken gebruikt, moet de synthetische interface die wordt gemaakt, worden geconfigureerd om onbeheerd te zijn met behulp van een udev-regel. Met deze actie voorkomt u dat NetworkManager hetzelfde IP-adres als de primaire interface wordt toegewezen.

    Ga als volgende te werk om deze toe te passen:

    sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
    # Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
    # This interface is transparentlybonded to the synthetic interface,
    # so NetworkManager should just ignore any SRIOV interfaces.
    SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1"
    EOF
    
  6. Zorg ervoor dat de netwerkservice begint bij het opstarten:

    sudo systemctl enable network
    
  7. Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  8. Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze configuratie wilt uitvoeren, opent /etc/default/grub u deze in een teksteditor en bewerkt u de GRUB_CMDLINE_LINUX parameter. Voorbeeld:

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

    Deze opdracht zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. Met de opdracht worden ook de nieuwe RHEL 7-naamconventies voor NIC's uitgeschakeld. U wordt ook aangeraden de volgende parameters te verwijderen:

    rhgb quiet crashkernel=auto
    

    Grafische en stille laarzen zijn niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden. U kunt de crashkernel geconfigureerde optie desgewenst laten staan. Deze parameter vermindert de hoeveelheid beschikbaar geheugen in de VIRTUELE machine met 128 MB of meer, wat een probleem kan zijn voor kleinere VM-grootten.

  9. Nadat u klaar bent met bewerken /etc/default/grub, voert u de volgende opdracht uit om de grub-configuratie opnieuw te bouwen:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  10. Hyper-V-modules toevoegen aan initramfs.

    Inhoud bewerken /etc/dracut.conf en toevoegen:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Bouw initramfs opnieuw:

    sudo dracut -f -v
    
  11. Verwijderen cloud-init:

    sudo yum remove cloud-init
    
  12. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten:

    sudo systemctl enable sshd
    

    Wijzig /etc/ssh/sshd_config dit om de volgende regels op te nemen:

    PasswordAuthentication yes
    ClientAliveInterval 180
    
  13. Het WALinuxAgent-pakket, WALinuxAgent-<version>is naar de Red Hat-opslagplaats voor extra's gepusht. Schakel de opslagplaats extra's in:

    sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  14. Installeer de Azure Linux-agent:

    sudo yum install WALinuxAgent
    

    Schakel de waagent service in:

    sudo systemctl enable waagent.service
    
  15. Installeer cloud-init.

    Volg de stappen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 12, 'Installeren cloud-init om de inrichting af te handelen'.

  16. Configuratie wisselen:

    • Maak geen wisselruimte op de besturingssysteemschijf.
    • Volg de stappen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 13, 'Configuratie wisselen'.
  17. Registratie van het abonnement ongedaan maken (indien nodig):

    sudo subscription-manager unregister
    
  18. De inrichting ongedaan maken door de stappen te volgen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 15, 'Deprovision'.

  19. Sluit de VIRTUELE machine af in KVM.

  20. Converteer de qcow2-installatiekopieën naar de VHD-indeling.

    Notitie

    Er is een bekende fout in qemu-img-versies >=1.1.1 die resulteert in een onjuist opgemaakte VHD. Het probleem is opgelost in QEMU 1.6. U wordt aangeraden qemu-img 1.1.0 of lager te gebruiken of bij te werken naar 1,6 of hoger. Zie deze website voor meer informatie.

    Converteer eerst de afbeelding naar onbewerkte indeling:

    sudo qemu-img convert -f qcow2 -O raw rhel-7.4.qcow2 rhel-7.4.raw
    

    Zorg ervoor dat de grootte van de onbewerkte afbeelding is uitgelijnd met 1 MB. Als u dat niet doet, rondt u de grootte af om uit te lijnen met 1 MB:

    MB=$((1024*1024))
    size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \
    gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1)*$MB))
    sudo qemu-img resize rhel-7.4.raw $rounded_size
    

    Converteer de onbewerkte schijf naar een VHD met een vaste grootte:

    sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
    

    Of neem met qemu versie 1.6+ de force_size optie op:

    sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
    

VMware

In deze sectie wordt beschreven hoe u een RHEL 6 - of RHEL 7-distributie van VMware voorbereidt.

Vereisten

In deze sectie wordt ervan uitgegaan dat u al een RHEL-VM in VMware hebt geïnstalleerd. Zie de installatiehandleiding van het VMware-gastbesturingssysteem voor informatie over het installeren van een besturingssysteem in VMware.

  • Wanneer u het Linux-besturingssysteem installeert, wordt u aangeraden standaardpartities te gebruiken in plaats van LVM. Dit is vaak de standaardinstelling voor veel installaties. Als u partities gebruikt, voorkomt u dat de LVM-naam conflicteert met een gekloonde VM, met name als een besturingssysteemschijf ooit aan een andere VIRTUELE machine moet worden gekoppeld om problemen op te lossen. LVM of RAID kan desgewenst worden gebruikt op gegevensschijven.
  • Configureer geen wisselpartitie op de schijf van het besturingssysteem. U kunt de Linux-agent configureren om een wisselbestand te maken op de tijdelijke resourceschijf. Lees de volgende stappen voor meer informatie.
  • Wanneer u de VHD maakt, selecteert u Virtuele schijf opslaan als één bestand.

RHEL 6 met VMware

Belangrijk

Op 30 november 2020 bereikte RHEL 6 het einde van de onderhoudsfase. De onderhoudsfase wordt gevolgd door de verlengde levensduurfase. Als RHEL 6 overstapt van de fase Volledig/Onderhoud, raden we u ten zeerste aan om een upgrade uit te voeren naar RHEL 7 of 8 of 9. Als u OP RHEL 6 moet blijven, raden we u aan de RHEL Extended Life Cycle Support-invoegtoepassing toe te voegen.

  1. In RHEL 6 NetworkManager kan dit de Azure Linux-agent verstoren. Verwijder dit pakket:

    sudo rpm -e --nodeps NetworkManager
    
  2. Maak een bestand met de naam netwerk in de /etc/sysconfig/ map met de volgende tekst:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  3. Maak of bewerk het /etc/sysconfig/network-scripts/ifcfg-eth0 bestand en voeg de volgende tekst toe:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  4. Verplaats (of verwijder) de udev-regels om te voorkomen dat statische regels voor de Ethernet-interface worden gegenereerd. Deze regels veroorzaken problemen wanneer u een VIRTUELE machine kloont in 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
    

    Notitie

    Wanneer u versneld netwerken gebruikt, moet de synthetische interface die wordt gemaakt, worden geconfigureerd om onbeheerd te zijn met behulp van een udev-regel. Met deze actie voorkomt u dat NetworkManager hetzelfde IP-adres als de primaire interface wordt toegewezen.

    Ga als volgende te werk om deze toe te passen:

    sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
    # Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
    # This interface is transparently bonded to the synthetic interface,
    # so NetworkManager should just ignore any SRIOV interfaces.
    SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1"
    EOF
    
  5. Zorg ervoor dat de netwerkservice begint bij het opstarten:

    sudo chkconfig network on
    
  6. Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  7. Het WALinuxAgent-pakket, WALinuxAgent-<version>is naar de Red Hat-opslagplaats voor extra's gepusht. Schakel de opslagplaats extra's in:

    sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  8. Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze stap wilt uitvoeren, opent /etc/default/grub u deze in een teksteditor en bewerkt u de GRUB_CMDLINE_LINUX parameter. Voorbeeld:

    GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0"
    

    Deze stap zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. U wordt ook aangeraden de volgende parameters te verwijderen:

    rhgb quiet crashkernel=auto
    

    Grafische en stille laarzen zijn niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden. U kunt de crashkernel geconfigureerde optie desgewenst laten staan. Deze parameter vermindert de hoeveelheid beschikbaar geheugen in de VIRTUELE machine met 128 MB of meer, wat een probleem kan zijn voor kleinere VM-grootten.

  9. Hyper-V-modules toevoegen aan initramfs:

    Bewerk /etc/dracut.confen voeg de volgende inhoud toe:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Bouw initramfs opnieuw:

    sudo dracut -f -v
    
  10. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Dit is meestal de standaardinstelling. Wijzig /etc/ssh/sshd_config dit om de volgende regel op te nemen:

    ClientAliveInterval 180
    
  11. Installeer de Azure Linux-agent:

    sudo yum install WALinuxAgent
    sudo chkconfig waagent on
    
  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 nadat de VIRTUELE machine is ingericht in Azure. De lokale resourceschijf is een tijdelijke schijf en kan worden geleegd als de vm ongedaan is gemaakt. Nadat u de Azure Linux-agent in de vorige stap hebt geïnstalleerd, wijzigt u de volgende parameters op /etc/waagent.conf de juiste manier:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    ## NOTE: set this to whatever you need it to be.
    
  13. Registratie van het abonnement ongedaan maken (indien nodig):

    sudo subscription-manager unregister
    
  14. Voer de volgende opdrachten uit om de inrichting van de VIRTUELE machine ongedaan te maken en deze voor te bereiden voor inrichting in Azure:

    Notitie

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

    sudo rm -rf /var/lib/waagent/
    sudo rm -f /var/log/waagent.log
    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    
  15. Sluit de virtuele machine af en converteer het VMDK-bestand naar een VHD-bestand.

    Notitie

    Er is een bekende fout in qemu-img-versies >=2.2.1 die resulteert in een onjuist opgemaakte VHD. Het probleem is opgelost in QEMU 2.6. U wordt aangeraden qemu-img 2.2.0 of lager te gebruiken of bij te werken naar 2.6 of hoger. Zie deze website voor meer informatie.

    Converteer eerst de afbeelding naar onbewerkte indeling:

    sudo qemu-img convert -f vmdk -O raw rhel-6.9.vmdk rhel-6.9.raw
    

    Zorg ervoor dat de grootte van de onbewerkte afbeelding is uitgelijnd met 1 MB. Als u dat niet doet, rondt u de grootte af om uit te lijnen met 1 MB:

    MB=$((1024*1024))
    size=$(qemu-img info -f raw --output json "rhel-6.9.raw" | \
    gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1)*$MB))
    sudo qemu-img resize rhel-6.9.raw $rounded_size
    

    Converteer de onbewerkte schijf naar een VHD met een vaste grootte:

    sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
    

    Of neem met qemu versie 2.6+ de force_size optie op:

    sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
    

RHEL 7 met VMware

  1. Maak of bewerk het /etc/sysconfig/network bestand en voeg de volgende tekst toe:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  2. Maak of bewerk het /etc/sysconfig/network-scripts/ifcfg-eth0 bestand en voeg de volgende tekst toe:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    PERSISTENT_DHCLIENT=yes
    NM_CONTROLLED=yes
    

    Notitie

    Wanneer u versneld netwerken gebruikt, moet de synthetische interface die wordt gemaakt, worden geconfigureerd om onbeheerd te zijn met behulp van een udev-regel. Met deze actie voorkomt u dat NetworkManager hetzelfde IP-adres als de primaire interface wordt toegewezen.

    Ga als volgende te werk om deze toe te passen:

    sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
    # Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
    # This interface is transparentlybonded to the synthetic interface,
    # so NetworkManager should just ignore any SRIOV interfaces.
    SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1"
    EOF
    
  3. Zorg ervoor dat de netwerkservice begint bij het opstarten:

    sudo systemctl enable network
    
  4. Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  5. Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze wijziging wilt uitvoeren, opent /etc/default/grub u deze in een teksteditor en bewerkt u de GRUB_CMDLINE_LINUX parameter. Voorbeeld:

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

    Deze configuratie 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 nieuwe RHEL 7-naamconventies voor NIC's uitgeschakeld. Daarnaast raden we u aan de volgende parameters te verwijderen:

    rhgb quiet crashkernel=auto
    

    Grafische en stille laarzen zijn niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden. U kunt de crashkernel geconfigureerde optie desgewenst laten staan. Deze parameter vermindert de hoeveelheid beschikbaar geheugen in de VIRTUELE machine met 128 MB of meer, wat een probleem kan zijn voor kleinere VM-grootten.

  6. Nadat u klaar bent met bewerken /etc/default/grub, voert u de volgende opdracht uit om de grub-configuratie opnieuw te bouwen:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  7. Hyper-V-modules toevoegen aan initramfs:

    Bewerken /etc/dracut.conf, inhoud toevoegen:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Bouw initramfs opnieuw:

    sudo dracut -f -v
    
  8. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Deze instelling is meestal de standaardinstelling. Wijzig /etc/ssh/sshd_config dit om de volgende regel op te nemen:

    ClientAliveInterval 180
    
  9. Het WALinuxAgent-pakket, WALinuxAgent-<version>is naar de Red Hat-opslagplaats voor extra's gepusht. Schakel de opslagplaats extra's in:

    sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  10. Installeer de Azure Linux-agent:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent.service
    
  11. cloud-init installeren:

    Volg de stappen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 12, 'Installeren cloud-init om de inrichting af te handelen'.

  12. Configuratie wisselen:

    • Maak geen wisselruimte op de besturingssysteemschijf.
    • Volg de stappen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 13, 'Configuratie wisselen'.
  13. Als u de registratie van het abonnement ongedaan wilt maken, voert u de volgende opdracht uit:

    sudo subscription-manager unregister
    
  14. De inrichting ongedaan maken door de stappen te volgen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 15, 'Deprovision'.

  15. Sluit de VIRTUELE machine af en converteer het VMDK-bestand naar de VHD-indeling.

    Notitie

    Er is een bekende fout in qemu-img-versies >=2.2.1 die resulteert in een onjuist opgemaakte VHD. Het probleem is opgelost in QEMU 2.6. U wordt aangeraden qemu-img 2.2.0 of lager te gebruiken of bij te werken naar 2.6 of hoger. Zie deze website voor meer informatie.

    Converteer eerst de afbeelding naar onbewerkte indeling:

    sudo qemu-img convert -f vmdk -O raw rhel-7.4.vmdk rhel-7.4.raw
    

    Zorg ervoor dat de grootte van de onbewerkte afbeelding is uitgelijnd met 1 MB. Als u dat niet doet, rondt u de grootte af om uit te lijnen met 1 MB:

    MB=$((1024*1024))
    size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \
    gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1)*$MB))
    sudo qemu-img resize rhel-7.4.raw $rounded_size
    

    Converteer de onbewerkte schijf naar een VHD met een vaste grootte:

    sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
    

    Of neem met qemu versie 2.6+ de force_size optie op:

    sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
    

Kickstart-bestand

In deze sectie wordt beschreven hoe u een RHEL 7-distributie van een ISO voorbereidt met behulp van een kickstartbestand.

RHEL 7 uit een kickstart-bestand

  1. Maak een kickstartbestand met de volgende inhoud en sla het bestand op. Zie de Kickstart-installatiehandleiding voor meer informatie over de installatie van kickstarts.

    # Kickstart for provisioning a RHEL 7 Azure VM
    
    # System authorization information
      auth --enableshadow --passalgo=sha512
    
    # Use graphical install
    text
    
    # Don't run the Setup Agent on first boot
    firstboot --disable
    
    # Keyboard layouts
    keyboard --vckeymap=us --xlayouts='us'
    
    # System language
    lang en_US.UTF-8
    
    # Network information
    network  --bootproto=dhcp
    
    # Root password
    rootpw --plaintext "to_be_disabled"
    
    # System services
    services --enabled="sshd,waagent,NetworkManager"
    
    # System timezone
    timezone Etc/UTC --isUtc --ntpservers 0.rhel.pool.ntp.org,1.rhel.pool.ntp.org,2.rhel.pool.ntp.org,3.rhel.pool.ntp.org
    
    # Partition clearing information
    clearpart --all --initlabel
    
    # Clear the MBR
    zerombr
    
    # Disk partitioning information
    part /boot --fstype="xfs" --size=500
    part / --fstyp="xfs" --size=1 --grow --asprimary
    
    # System bootloader configuration
    bootloader --location=mbr
    
    # Firewall configuration
    firewall --disabled
    
    # Enable SELinux
    selinux --enforcing
    
    # Don't configure X
    skipx
    
    # Power down the machine after install
    poweroff
    
    %packages
    @base
    @console-internet
    chrony
    sudo
    parted
    -dracut-config-rescue
    
    %end
    
    %post --log=/var/log/anaconda/post-install.log
    
    #!/bin/bash
    
    # Register Red Hat Subscription
    subscription-manager register --username=XXX --password=XXX --auto-attach --force
    
    # Install latest repo update
    yum update -y
    
    # Enable extras repo
    subscription-manager repos --enable=rhel-7-server-extras-rpms
    
    # Install WALinuxAgent
    yum install -y WALinuxAgent
    
    # Unregister Red Hat subscription
    subscription-manager unregister
    
    # Enable waaagent at boot-up
    systemctl enable waagent
    
    # Install cloud-init
    yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
    # Configure waagent for cloud-init
    sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/g' /etc/waagent.conf
    sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf
    sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
    
    echo "Adding mounts and disk_setup to init stage"
    sed -i '/ - mounts/d' /etc/cloud/cloud.cfg
    sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg
    sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg
    sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg
    
    # Disable the root account
    usermod root -p '!!'
    
    # Configure swap using cloud-init
    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"]
    - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.device-timeout=2,x-systemd.requires=cloud-init.service", "0", "0"]
    EOF
    
    # Set the cmdline
    sed -i 's/^\(GRUB_CMDLINE_LINUX\)=".*"$/\1="console=tty1 console=ttyS0 earlyprintk=ttyS0"/g' /etc/default/grub
    
    # Enable SSH keepalive
    sed -i 's/^#\(ClientAliveInterval\).*$/\1 180/g' /etc/ssh/sshd_config
    
    # Build the grub cfg
    grub2-mkconfig -o /boot/grub2/grub.cfg
    
    # Configure network
    cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    PERSISTENT_DHCLIENT=yes
    NM_CONTROLLED=yes
    EOF
    
    sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
    # Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
    # This interface is transparentlybonded to the synthetic interface,
    # so NetworkManager should just ignore any SRIOV interfaces.
    SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1"
    EOF
    
    # Deprovision and prepare for Azure if you are creating a generalized image
    sudo cloud-init clean --logs --seed
    sudo rm -rf /var/lib/cloud/
    sudo rm -rf /var/lib/waagent/
    sudo rm -f /var/log/waagent.log
    
    sudo waagent -force -deprovision+user
    rm -f ~/.bash_history
    export HISTSIZE=0
    
    %end
    
  2. Plaats het kickstartbestand waar het installatiesysteem er toegang toe heeft.

  3. Maak in Hyper-V-beheer een nieuwe VIRTUELE machine. Selecteer op de pagina Virtuele harde schijf verbinden de optie Een virtuele harde schijf later koppelen en voltooi de wizard Nieuwe virtuele machine .

  4. Open de VM-instellingen:

    1. Koppel een nieuwe VHD aan de virtuele machine. Zorg ervoor dat u VHD-indeling en vaste grootte selecteert.

    2. Bevestig de installatie-ISO aan het dvd-station.

    3. Stel het BIOS in om vanaf cd op te starten.

  5. Start de virtuele machine. Wanneer de installatiehandleiding wordt weergegeven, selecteert u de Tab-toets om de opstartopties te configureren.

  6. Voer inst.ks=<the location of the kickstart file> aan het einde van de opstartopties in en selecteer de Enter-toets.

  7. Wacht tot de installatie is voltooid. Wanneer deze is voltooid, wordt de virtuele machine automatisch afgesloten. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.

Bekende problemen

Het volgende probleem is bekend.

Het Hyper-V-stuurprogramma kan niet worden opgenomen in de eerste RAM-schijf wanneer u een niet-Hyper-V-hypervisor gebruikt

In sommige gevallen bevatten Linux-installatieprogramma's mogelijk niet de stuurprogramma's voor Hyper-V in de eerste RAM-schijf (initrd of initramfs) tenzij Linux detecteert dat deze wordt uitgevoerd in een Hyper-V-omgeving.

Wanneer u een ander virtualisatiesysteem (bijvoorbeeld VirtualBox of Xen) gebruikt om uw Linux-installatiekopieën voor te bereiden, moet u mogelijk initrd opnieuw bouwen om ervoor te zorgen dat ten minste de hv_vmbus modules en hv_storvsc kernelmodules beschikbaar zijn op de eerste RAM-schijf. Dit probleem is bekend, ten minste op systemen die zijn gebaseerd op de upstream Red Hat-distributie.

U kunt dit probleem oplossen door Hyper-V-modules toe te voegen aan initramfs en opnieuw te bouwen:

Bewerk /etc/dracut.confen voeg de volgende inhoud toe:

add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "

Bouw initramfs opnieuw:

sudo dracut -f -v

Zie Herbouwen initramfs voor meer informatie.