Sdílet prostřednictvím


Příprava virtuálního počítače založeného na Red Hat pro Azure

Platí pro: ✔️ Flexibilní škálovací sady virtuálních ✔️ počítačů s Linuxem – Jednotné škálovací sady ✔️

V tomto článku se dozvíte, jak připravit virtuální počítač s Red Hat Enterprise Linuxem (RHEL) pro použití v Azure. Verze RHEL popsané v tomto článku jsou 7.x, 8.X., 9.x. Hypervisory pro přípravu, které jsou popsané v tomto článku, jsou Hyper-V, virtuální počítač založený na jádru (KVM), VMware a Kickstart.

Další informace o požadavcích na způsobilost pro účast v programu Cloud Access v Red Hatu najdete na webu Red Hat Cloud Access a spuštění RHEL v Azure. Způsoby automatizace vytváření imagí RHEL najdete v Azure Image Builderu.

Poznámka:

Mějte na paměti verze, které jsou na konci životnosti (EOL) a nejsou již podporovány red Hat. Nahrané obrázky, které jsou v EOL nebo nad rámec EOL, jsou podporovány rozumným obchodním úsilím. Další informace najdete v životních cyklech produktů Red Hat.

Požadavky

Tato část předpokládá, že jste již získali soubor ISO z webu Red Hat a nainstalovali image RHEL na virtuální pevný disk (VHD). Další informace o tom, jak pomocí Správce technologie Hyper-V nainstalovat image operačního systému, najdete v tématu Instalace role Hyper-V a konfigurace virtuálního počítače.

Poznámky k instalaci RHEL

  • Azure nepodporuje formát VHDX. podpora Azure pouze pevný virtuální pevný disk. Pomocí Správce technologie Hyper-V můžete disk převést do formátu VHD nebo můžete použít rutinu convert-vhd . Pokud používáte VirtualBox, vyberte při vytváření disku pevnou velikost na rozdíl od výchozí dynamicky přidělené možnosti.
  • podpora Azure s Gen1 (spouštění systému BIOS) a virtuální počítače Gen2 (spouštění UEFI).
  • Maximální povolená velikost virtuálního pevného disku je 1 023 GB.
  • Modul jádra vfat musí být v jádru povolený.
  • Logický svazek Manager (LVM) je podporovaný a dá se použít na disku s operačním systémem nebo na datových discích na virtuálních počítačích Azure. Obecně doporučujeme místo LVM používat standardní oddíly na disku s operačním systémem. Tento postup zabraňuje konfliktům názvů LVM s klonovanými virtuálními počítači, zejména pokud byste někdy potřebovali připojit disk s operačním systémem k jinému identickému virtuálnímu počítači pro řešení potíží. Další informace najdete v dokumentaci LVM a RAID.
  • Vyžaduje se podpora jádra pro připojení systémů souborů UDF (Universal Disk Format). Při prvním spuštění v Azure předá virtuálnímu počítači s Linuxem média formátovaná uživatelem definovaná uživatelem, která je připojená k hostu, konfiguraci zřizování. Agent Azure Linux musí být schopný připojit systém souborů UDF ke čtení konfigurace a zřízení virtuálního počítače. Bez tohoto kroku se zřizování nezdaří.
  • Nenakonfigurujte prohození oddílu na disku s operačním systémem. Další informace najdete v následujících krocích.
  • Všechny virtuální pevné disky v Azure musí mít virtuální velikost zarovnanou na 1 MB. Při převodu z nezpracovaného disku na virtuální pevný disk je nutné před převodem zajistit, aby velikost nezpracovaného disku byla násobkem 1 MB. Další informace najdete v následujících krocích. Viz také poznámky k instalaci linuxu.

Poznámka:

Cloud-init >= 21.2 odebere požadavek UDF. Bez povoleného modulu definovaného uživatelem se ale disk CD-ROM během zřizování nepřipevní, což zabrání použití vlastních dat. Alternativním řešením je použít vlastní data pomocí uživatelských dat. Na rozdíl od vlastních dat nejsou uživatelská data šifrovaná. Další informace naleznete v tématu Formáty uživatelských dat.

  1. Ve Správci technologie Hyper-V vyberte virtuální počítač.

  2. Výběrem možnosti Připojit otevřete okno konzoly pro virtuální počítač.

  3. Vytvořte nebo upravte /etc/sysconfig/network soubor a přidejte následující text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. Vytvořte nebo upravte /etc/sysconfig/network-scripts/ifcfg-eth0 soubor a přidejte následující text:

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

    Poznámka:

    Při použití akcelerovaných síťových služeb musí být syntetické rozhraní, které je vytvořeno, nakonfigurováno tak, aby nespravovalo pomocí pravidla udev. Tato akce zabrání NetworkManager přiřazení stejné IP adresy jako primární rozhraní.

    Pokud ho chcete použít:

    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. Ujistěte se, že se síťová služba spouští při spuštění:

    sudo systemctl enable network
    
  6. Zaregistrujte své předplatné Red Hat a povolte instalaci balíčků z úložiště RHEL:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  7. Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Chcete-li tuto změnu provést, otevřete /etc/default/grub v textovém editoru a upravte GRUB_CMDLINE_LINUX parametr. Příklad:

    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
    

    Poznámka:

    Pokud ENABLE_BLSCFG=false je místo /etc/default/grub ENABLE_BLSCFG=true, nástroje, jako je grubedit nebo gubby, které spoléhají na specifikaci zavaděče spouštění (BLS) pro správu položek a konfigurací spouštění, nemusí správně fungovat v RHEL 8 a 9. Pokud ENABLE_BLSCFG není k dispozici, výchozí chování je false.

    Tato úprava také zajišťuje, že se všechny zprávy konzoly odešlou na první sériový port a umožní interakci s sériovou konzolou, která může pomoct podpora Azure s problémy s laděním. Tato konfigurace také vypne nové zásady vytváření názvů pro síťové karty.

    rhgb quiet crashkernel=auto
    

    Grafické a tiché spouštění není užitečné v cloudovém prostředí, kde chcete, aby se všechny protokoly odesílaly na sériový port. Pokud chcete, můžete tuto možnost ponechat crashkernel nakonfigurovanou. Tento parametr snižuje množství dostupné paměti na virtuálním počítači o 128 MB nebo více, což může být problém u menších velikostí virtuálních počítačů.

  8. Po dokončení úprav /etc/default/grubspusťte následující příkaz, který znovu sestaví konfiguraci grubu:

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

    Poznámka:

    Pokud nahráváte virtuální počítač s povoleným rozhraním UEFI, příkaz pro aktualizaci grubu je grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg.

  9. Ujistěte se, že je server SSH nainstalovaný a nakonfigurovaný tak, aby se spustil při spuštění, což je obvykle výchozí nastavení. Upravte /etc/ssh/sshd_config tak, aby zahrnoval následující řádek:

    ClientAliveInterval 180
    
  10. Balíček WALinuxAgent , WALinuxAgent-<version>byl nasdílený do úložiště extra Red Hat. Povolte úložiště navíc:

    sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  11. Nainstalujte agenta cloud-initAzure Linux a další nezbytné nástroje:

    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. Konfigurace cloud-init pro zpracování zřizování:

    1. Konfigurovat waagent pro 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
      

      Poznámka:

      Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, nastavte Provisioning.Agent=disabled ji v /etc/waagent.conf konfiguraci.

    2. Konfigurace připojení:

      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. Konfigurace zdroje dat Azure:

      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. Pokud je nakonfigurovaný, odeberte existující prohození souboru:

      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. Konfigurace cloud-init protokolování:

      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. Konfigurace prohození:

    • Nevytvávejte místo prohození na disku s operačním systémem.

      Dříve se agent Azure s Linuxem použil k automatické konfiguraci prohození místa pomocí místního disku prostředku připojeného k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Tato akce je nyní zpracována cloud-init. K vytvoření prohození souboru nesmíte použít agenta Linuxu. Odpovídajícím způsobem upravte následující parametry /etc/waagent.conf :

      ResourceDisk.Format=n
      ResourceDisk.EnableSwap=n
      
    • Pokud chcete připojit, formátovat a vytvořit prohození, můžete:

      • Tento kód předejte jako cloud-init konfiguraci při každém vytvoření virtuálního počítače prostřednictvím vlastních dat. Tuto metodu doporučujeme.

      • Použijte direktivu upečenou cloud-init do image, která tento krok provede při každém vytvoření virtuálního počítače.

        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. Nakonfigurujte cloud-init telemetrii, která vám pomůže s řešením potíží se zřizováním:

    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. Pokud chcete zrušit registraci předplatného, spusťte následující příkaz:

    
    sudo subscription-manager unregister
    
  16. Zrušte zřízení virtuálního počítače a připravte ho na zřizování v Azure:

    Upozornění

    Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, přeskočte krok zrušení zřízení. Spuštěním příkazu waagent -force -deprovision+user se vykreslí nepoužitelný zdrojový počítač. Tento krok je určený pouze k vytvoření generalizované image.

    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. Ve Správci technologie Hyper-V vyberte akci>vypnout. Váš virtuální pevný disk s Linuxem je teď připravený k nahrání do Azure.