Dela via


Förbereda en Red Hat-baserad virtuell dator för Azure

Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️ ✔️ Enhetliga skalningsuppsättningar

I den här artikeln får du lära dig hur du förbereder en virtuell Dator med Red Hat Enterprise Linux (RHEL) för användning i Azure. De versioner av RHEL som beskrivs i den här artikeln är 7.x, 8.X., 9.x. Hypervisor-program för förberedelse som beskrivs i den här artikeln är Hyper-V, kernelbaserad virtuell dator (KVM), VMware och Kickstart.

Mer information om behörighetskrav för att delta i Red Hats Cloud Access-program finns på Webbplatsen för Red Hat Cloud Access och Köra RHEL på Azure. Information om hur du automatiserar skapandet av RHEL-avbildningar finns i Azure Image Builder.

Kommentar

Tänk på versioner som är i slutet av livet (EOL) och som inte längre stöds av Red Hat. Uppladdade bilder som ligger på eller utanför EOL stöds på en rimlig affärsinsats. Mer information finns i Red Hat-produktens livscykel.

Förutsättningar

Det här avsnittet förutsätter att du redan har hämtat en ISO-fil från Red Hat-webbplatsen och installerat RHEL-avbildningen på en virtuell hårddisk (VHD). Mer information om hur du använder Hyper-V Manager för att installera en operativsystemavbildning finns i Installera Hyper-V-rollen och konfigurera en virtuell dator.

RHEL-installationsanteckningar

  • Azure stöder inte VHDX-formatet. Azure Support har endast en fast virtuell hårddisk. Du kan använda Hyper-V Manager för att konvertera disken till VHD-format, eller så kan du använda cmdleten convert-vhd . Om du använder VirtualBox väljer du Fast storlek i stället för det dynamiskt allokerade standardalternativet när du skapar disken.
  • Azure Support s Gen1 (BIOS-start) och virtuella datorer med Gen2 (UEFI-start).
  • Den maximala storleken som tillåts för den virtuella hårddisken är 1 023 GB.
  • Modulen vfat kernel måste vara aktiverad i kerneln.
  • Logical Volume Manager (LVM) stöds och kan användas på OS-disken eller datadiskarna på virtuella Azure-datorer. I allmänhet rekommenderar vi att du använder standardpartitioner på OS-disken i stället för LVM. Den här metoden undviker LVM-namnkonflikter med klonade virtuella datorer, särskilt om du någonsin behöver ansluta en operativsystemdisk till en annan identisk virtuell dator för felsökning. Mer information finns i LVM- och RAID-dokumentationen.
  • Kernelstöd för montering av UDF-filsystem (Universal Disk Format) krävs. Vid första starten på Azure skickar det UDF-formaterade mediet som är kopplat till gästen etableringskonfigurationen till den virtuella Linux-datorn. Azure Linux-agenten måste kunna montera UDF-filsystemet för att kunna läsa dess konfiguration och etablera den virtuella datorn. Utan det här steget misslyckas etableringen.
  • Konfigurera inte en växlingspartition på operativsystemdisken. Mer information finns i följande steg.
  • Alla virtuella hårddiskar i Azure måste ha en virtuell storlek som är justerad till 1 MB. När du konverterar från en rådisk till en virtuell hårddisk måste du se till att den råa diskstorleken är en multipel på 1 MB före konverteringen. Mer information finns i följande steg. Se även Installationsanteckningar för Linux.

Kommentar

Cloud-init >= 21.2 tar bort UDF-kravet. Men utan att UDF-modulen är aktiverad monteras inte CD-ROM under etableringen, vilket förhindrar att anpassade data tillämpas. En lösning är att tillämpa anpassade data med hjälp av användardata. Till skillnad från anpassade data krypteras inte användardata. Mer information finns i Användardataformat.

  1. I Hyper-V Manager väljer du den virtuella datorn.

  2. Välj Anslut för att öppna ett konsolfönster för den virtuella datorn.

  3. Skapa eller redigera /etc/sysconfig/network filen och lägg till följande text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. Skapa eller redigera /etc/sysconfig/network-scripts/ifcfg-eth0 filen och lägg till följande text:

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

    Kommentar

    När du använder accelererat nätverk måste det syntetiska gränssnitt som skapas konfigureras för att vara ohanterat med hjälp av en udev-regel. Den här åtgärden hindrar NetworkManager från att tilldela samma IP-adress till den som det primära gränssnittet.

    Så här tillämpar du den:

    sudo tee <<EOF /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules > /dev/null
    # 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. Kontrollera att nätverkstjänsten startar vid starttiden:

    sudo systemctl enable network
    
  6. Registrera din Red Hat-prenumeration för att aktivera installation av paket från RHEL-lagringsplatsen:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  7. Ändra kernel-startlinjen i grub-konfigurationen så att den innehåller fler kernelparametrar för Azure. Om du vill göra den här ändringen öppnar /etc/default/grub du i en textredigerare och redigerar parametern GRUB_CMDLINE_LINUX . Till exempel:

    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
    

    Kommentar

    Om ENABLE_BLSCFG=false finns i i /etc/default/grub stället för kanske verktyg som grubedit eller gubby, som förlitar sig på BLS (Boot Loader Specification) för hantering av ENABLE_BLSCFG=truestartposter och konfigurationer, inte fungerar korrekt i RHEL 8 och 9. Om ENABLE_BLSCFG inte finns är falsestandardbeteendet .

    Den här ändringen säkerställer också att alla konsolmeddelanden skickas till den första serieporten och möjliggör interaktion med seriekonsolen, vilket kan hjälpa Azure Support med felsökningsproblem. Den här konfigurationen inaktiverar också de nya namngivningskonventionerna för nätverkskort (NIC).

    rhgb quiet crashkernel=auto
    

    Grafiska och tysta stövlar är inte användbara i en molnmiljö där du vill att alla loggar ska skickas till serieporten. Du kan lämna alternativet crashkernel konfigurerat om du vill. Den här parametern minskar mängden tillgängligt minne på den virtuella datorn med 128 MB eller mer, vilket kan vara ett problem för mindre VM-storlekar.

  8. När du är klar med redigeringen /etc/default/grubkör du följande kommando för att återskapa grub-konfigurationen:

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

    Kommentar

    Om du laddar upp en UEFI-aktiverad virtuell dator är grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfgkommandot för att uppdatera grub .

  9. Kontrollera att SSH-servern är installerad och konfigurerad för att starta vid start, vilket vanligtvis är standard. Ändra /etc/ssh/sshd_config så att följande rad inkluderas:

    ClientAliveInterval 180
    
  10. WALinuxAgent-paketet, WALinuxAgent-<version>, har push-överförts till Red Hat-extralagringsplatsen. Aktivera lagringsplatsen extrafunktioner:

    sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  11. Installera Azure Linux-agenten cloud-initoch andra nödvändiga verktyg:

    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. Konfigurera cloud-init för att hantera etableringen:

    1. Konfigurera waagent för 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
      

      Kommentar

      Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning anger du Provisioning.Agent=disabled konfigurationen /etc/waagent.conf .

    2. Konfigurera monteringar:

      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. Konfigurera Azure-datakällan:

      sudo echo "Allow only Azure datasource, disable fetching network setting via IMDS"
      sudo tee /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF
      datasource_list: [ Azure ]
      datasource:
          Azure:
              apply_network_config: False
      EOF
      
    4. Om du har konfigurerat den tar du bort den befintliga växlingsfilen:

      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. Konfigurera cloud-init loggning:

      sudo echo "Add console log file"
      sudo tee <<EOF /etc/cloud/cloud.cfg.d/05_logging.cfg > /dev/null
      
      # 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. Växlingskonfiguration:

    • Skapa inte växlingsutrymme på operativsystemdisken.

      Tidigare användes Azure Linux-agenten för att automatiskt konfigurera växlingsutrymme med hjälp av den lokala resursdisken som är ansluten till den virtuella datorn efter att den virtuella datorn har etablerats i Azure. Den här åtgärden hanteras nu av cloud-init. Du får inte använda Linux-agenten för att formatera resursdisken för att skapa växlingsfilen. Ändra följande parametrar på /etc/waagent.conf lämpligt sätt:

      ResourceDisk.Format=n
      ResourceDisk.EnableSwap=n
      
    • Om du vill montera, formatera och skapa växlingen kan du antingen:

      • Skicka in den här koden som en cloud-init konfiguration varje gång du skapar en virtuell dator via anpassade data. Vi rekommenderar den här metoden.

      • Använd ett cloud-init direktiv som bakas in i avbildningen som gör det här steget varje gång den virtuella datorn skapas.

        sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
        sudo tee /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. Konfigurera cloud-init telemetri för att hjälpa till med felsökning för etableringsproblem:

    sudo tee >> /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg << EOF
    # This config enables cloud-init to report provisioning telemetry to aid with troubleshooting
    Reporting:
      logging:
        type: log
      telemetry:
        type: hyperv
    EOF
    
  15. Om du vill avregistrera prenumerationen kör du följande kommando:

    
    sudo subscription-manager unregister
    
  16. Avetablera den virtuella datorn och förbered den för etablering i Azure:

    Varning

    Om du migrerar en specifik virtuell dator och inte vill skapa en generaliserad avbildning hoppar du över avetableringssteget. Om du kör kommandot waagent -force -deprovision+user blir källdatorn oanvändbar. Det här steget är endast avsett att skapa en generaliserad avbildning.

    sudo rm -f /var/log/waagent.log
    sudo cloud-init clean --logs --seed
    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    
  17. Välj Åtgärden>stängs av i Hyper-V Manager. Din virtuella Linux-hårddisk är nu redo att laddas upp till Azure.