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 6.X, 7.X a 8.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) a VMware.

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.

Správce technologie Hyper-V

V této části se dozvíte, jak pomocí Správce technologie Hyper-V připravit virtuální počítač RHEL 6, RHEL 7 nebo RHEL 8 .

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.

RHEL 6 pomocí Správce technologie Hyper-V

Důležité

30. listopadu 2020 dosáhl RHEL 6 konce fáze údržby. Fáze údržby následuje fáze Rozšířené životnosti. S přechodem RHEL 6 z fází úplné údržby důrazně doporučujeme upgradovat na RHEL 7, 8 nebo 9. Pokud potřebujete zůstat na RHEL 6, doporučujeme přidat doplněk podpory rozšířeného životního cyklu RHEL.

  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. V RHEL 6 NetworkManager může kolidovat s agentem Azure Linux. Odinstalujte tento balíček:

    sudo rpm -e --nodeps NetworkManager
    
  4. Vytvořte nebo upravte /etc/sysconfig/network soubor a přidejte následující text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. 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
    
  6. Přesuňte (nebo odeberte) pravidla udev, abyste se vyhnuli generování statických pravidel pro ethernetové rozhraní. Tato pravidla způsobují problémy při klonování virtuálního počítače v Azure nebo Hyper-V:

    Upozorňující

    Mnoho velikostí virtuálních počítačů v5 a novějších vyžaduje akcelerované síťové služby. Pokud není povolená, správce NetworkManager přiřadí stejnou IP adresu všem virtuálním rozhraním funkcí. Pokud chcete zabránit duplicitním IP adresám, nezapomeňte při migraci na novější velikost zahrnout toto pravidlo udev.

    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
    

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

    sudo chkconfig network on
    
  8. 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
    
  9. 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-6-server-extras-rpms
    
  10. Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Pokud chcete tuto změnu provést, otevřete /boot/grub/menu.lst ji v textovém editoru. Ujistěte se, že výchozí jádro obsahuje následující parametry:

    console=ttyS0 earlyprintk=ttyS0
    

    Tato akce také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port, který může pomoct podpora Azure s problémy s laděním.

    Doporučujeme také odebrat následující parametry:

    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 virtuálního počítače o 128 MB nebo více. Tato konfigurace může být problém s menšími velikostmi virtuálních počítačů.

  11. Ujistěte se, že je server SSH (Secure Shell) 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
    
  12. Nainstalujte agenta Azure s Linuxem:

    sudo yum install WALinuxAgent
    sudo chkconfig waagent on
    

    Instalace balíčku WALinuxAgent odebere NetworkManager balíčky a NetworkManager-gnome balíčky, pokud ještě nebyly odebrány v kroku 3.

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

    Agent Azure s Linuxem může automaticky nakonfigurovat místo prohození pomocí disku místního prostředku, který je připojený k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Místní disk prostředku je dočasný disk a pokud je virtuální počítač zrušený, může se vyprázdnit. Po instalaci agenta Azure Linuxu v předchozím kroku odpovídajícím způsobem upravte následující parametry /etc/waagent.conf :

    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. Zrušení registrace předplatného (v případě potřeby):

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

    Poznámka:

    Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, přeskočte krok zrušení zřízení.

        sudo waagent -force -deprovision
        sudo export HISTSIZE=0
    
  16. 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.

RHEL 7 s využitím Správce technologie Hyper-V

  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 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. 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, aby se všechny zprávy konzoly odesílaly na první sériový port a povolily interakci se 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ů RHEL 7 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 cat > /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 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. 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 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. Pokud chcete zrušit registraci předplatného, spusťte následující příkaz:

    sudo subscription-manager unregister
    
  15. 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
    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    
  16. 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.

RHEL 8+ s využitím Správce technologie Hyper-V

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

    sudo systemctl enable NetworkManager.service
    
  4. Nakonfigurujte síťové rozhraní tak, aby se automaticky spustilo při spuštění a používalo protokol dynamické konfigurace hostitele:

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

    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 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. 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
    
  6. Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval více parametrů jádra pro Azure a povolte sériovou konzolu.

  7. Odeberte aktuální parametry GRUB:

    sudo grub2-editenv - unset kernelopts
    
  8. Upravte /etc/default/grub v textovém editoru a přidejte následující parametry:

    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"
    

    Tato úprava také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port a povolily interakci se 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.

  9. Doporučujeme také odebrat následující parametry:

    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čů.

  10. 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
    

    Pro virtuální počítač s povoleným rozhraním UEFI spusťte následující příkaz:

    sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
    
  11. 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
    
  12. 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
    
  13. Konfigurace cloud-init pro zpracování zřizování:

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

      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 cat > /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 defaul
      swapoff /mnt/resource/swapfile
      rm /mnt/resource/swapfile -f
      fi
      
    5. Konfigurace cloud-init protokolování:

      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. 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. Agenta Linuxu nesmíte použít k formátování disku prostředku, který vytvoří prohození souboru. Odpovídajícím způsobem upravte následující parametry /etc/waagent.conf :

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

    sudo subscription-manager unregister
    
  16. Spuštěním následujících příkazů zrušte zřízení virtuálního počítače a připravte ho na zřízení v 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
    

    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.

  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.

KVM

V této části se dozvíte, jak pomocí KVM připravit distribuci RHEL 6 nebo RHEL 7 k nahrání do Azure.

RHEL 6 s využitím KVM

Důležité

30. listopadu 2020 dosáhl RHEL 6 konce fáze údržby. Fáze údržby následuje fáze Rozšířené životnosti. S přechodem RHEL 6 z fází úplné údržby důrazně doporučujeme upgradovat na RHEL 7, 8 nebo 9. Pokud potřebujete zůstat na RHEL 6, doporučujeme přidat doplněk podpory rozšířeného životního cyklu RHEL.

  1. Stáhněte si image KVM RHEL 6 z webu Red Hat.

  2. Nastavte kořenové heslo.

    Vygenerujte šifrované heslo a zkopírujte výstup příkazu:

    sudo openssl passwd -1 changeme
    

    Nastavení kořenového hesla pomocí hosta:

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

    Změňte druhé pole kořenového uživatele na !! šifrované heslo.

  3. Vytvořte virtuální počítač v KVM z image qcow2. Nastavte typ disku na qcow2 a nastavte model zařízení virtuálního síťového rozhraní na virtio. Pak spusťte virtuální počítač a přihlaste se jako root.

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

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. 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
    
  6. Přesuňte (nebo odeberte) pravidla udev, abyste se vyhnuli generování statických pravidel pro ethernetové rozhraní. Tato pravidla způsobují problémy při klonování virtuálního počítače v Azure nebo 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
    

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

    sudo chkconfig network on
    
  8. 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
    
  9. Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Pokud chcete tuto konfiguraci provést, otevřete /boot/grub/menu.lst ji v textovém editoru. Ujistěte se, že výchozí jádro obsahuje následující parametry:

    console=ttyS0 earlyprintk=ttyS0
    

    Tento krok také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port, který může pomoct podpora Azure s laděním problémů.

    Doporučujeme také odebrat následující parametry:

    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čů.

  10. Přidejte moduly Hyper-V do initramfs:

    Upravte /etc/dracut.confa přidejte následující obsah:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Opětovné sestavení initramfs:

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

    sudo yum remove cloud-init
    
  12. Ujistěte se, že je server SSH nainstalovaný a nakonfigurovaný tak, aby se spustil při spuštění:

    sudo chkconfig sshd on
    

    Upravte /etc/ssh/sshd_config tak, aby zahrnoval následující řádky:

    PasswordAuthentication yes
    ClientAliveInterval 180
    
  13. 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-6-server-extras-rpms
    
  14. Nainstalujte agenta Azure s Linuxem:

    sudo yum install WALinuxAgent
    sudo chkconfig waagent on
    
  15. Agent Azure s Linuxem může automaticky nakonfigurovat místo prohození pomocí disku místního prostředku, který je připojený k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Místní disk prostředku je dočasný disk a pokud je virtuální počítač zrušený, může být vyprázdněn. Po instalaci agenta Azure Linuxu v předchozím kroku odpovídajícím způsobem upravte následující parametry /etc/waagent.conf :

    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. Zrušení registrace předplatného (v případě potřeby):

    sudo subscription-manager unregister
    
  17. Spuštěním následujících příkazů virtuální počítač zrušte a připravte ho na zřízení v Azure.

    Poznámka:

    Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, přeskočte krok zrušení zřízení.

    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. Vypněte virtuální počítač v KVM.

  19. Převeďte image qcow2 do formátu VHD.

    Poznámka:

    Ve verzích qemu-img = >2.2.1 existuje známá chyba, která vede k nesprávnému formátování virtuálního pevného disku. Tento problém je opravený v QEMU 2.6. Doporučujeme použít qemu-img 2.2.0 nebo nižší nebo aktualizovat na verzi 2.6 nebo vyšší. Další informace naleznete na tomto webu .

    Nejprve převeďte obrázek na nezpracovaný formát:

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

    Ujistěte se, že je velikost nezpracovaného obrázku zarovnaná s 1 MB. V opačném případě zaokrouhlete velikost nahoru tak, aby odpovídala 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
    

    Převeďte nezpracovaný disk na virtuální pevný disk s pevnou velikostí:

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

    Nebo pokud máte qemu verze 2.6 nebo novější, uveďte možnost force_size :

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

RHEL 7 s využitím KVM

  1. Stáhněte si image KVM RHEL 7 z webu Red Hat. Tento postup jako příklad používá RHEL 7.

  2. Nastavte kořenové heslo.

    Vygenerujte šifrované heslo a zkopírujte výstup příkazu:

    sudo openssl passwd -1 changeme
    

    Nastavení kořenového hesla pomocí hosta:

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

    Změňte druhé pole kořenového uživatele na !! šifrované heslo.

  3. Vytvořte virtuální počítač v KVM z image qcow2. Nastavte typ disku na qcow2 a nastavte model zařízení virtuálního síťového rozhraní na virtio. Pak spusťte virtuální počítač a přihlaste se jako root.

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

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

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

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

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

    Tento příkaz také zajistí, aby se všechny zprávy konzoly odesílaly na první sériový port, který může pomoct podpora Azure s laděním problémů. Příkaz také vypne nové zásady vytváření názvů RHEL 7 pro síťové karty. Doporučujeme také odebrat následující parametry:

    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čů.

  9. 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
    
  10. Přidejte moduly Hyper-V do initramfs.

    Upravit /etc/dracut.conf a přidat obsah:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Opětovné sestavení initramfs:

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

    sudo yum remove cloud-init
    
  12. Ujistěte se, že je server SSH nainstalovaný a nakonfigurovaný tak, aby se spustil při spuštění:

    sudo systemctl enable sshd
    

    Upravte /etc/ssh/sshd_config tak, aby zahrnoval následující řádky:

    PasswordAuthentication yes
    ClientAliveInterval 180
    
  13. 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
    
  14. Nainstalujte agenta Azure s Linuxem:

    sudo yum install WALinuxAgent
    

    waagent Povolte službu:

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

    Postupujte podle kroků v části Příprava virtuálního počítače RHEL 7 ze Správce technologie Hyper-V, krok 12 Instalace cloud-init pro zpracování zřizování.

  16. Konfigurace prohození:

    • Nevytvávejte místo prohození na disku s operačním systémem.
    • Postupujte podle kroků v části Příprava virtuálního počítače RHEL 7 z Hyper-V Manageru, krok 13– Konfigurace prohození.
  17. Zrušení registrace předplatného (v případě potřeby):

    sudo subscription-manager unregister
    
  18. Zrušte zřízení podle kroků v části Příprava virtuálního počítače RHEL 7 z Hyper-V Manageru, krok 15, zrušení zřízení.

  19. Vypněte virtuální počítač v KVM.

  20. Převeďte image qcow2 do formátu VHD.

    Poznámka:

    Ve verzích qemu-img = >1.1.1 existuje známá chyba, která vede k nesprávnému formátování virtuálního pevného disku. Tento problém je opravený v QEMU 1.6. Doporučujeme použít qemu-img 1.1.0 nebo nižší nebo aktualizovat na verzi 1.6 nebo vyšší. Další informace najdete na tomto webu.

    Nejprve převeďte obrázek na nezpracovaný formát:

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

    Ujistěte se, že je velikost nezpracovaného obrázku zarovnaná s 1 MB. V opačném případě zaokrouhlete velikost nahoru tak, aby odpovídala 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
    

    Převeďte nezpracovaný disk na virtuální pevný disk s pevnou velikostí:

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

    Nebo pokud máte qemu verze 1.6+, uveďte možnost force_size :

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

VMware

V této části se dozvíte, jak připravit distribuci RHEL 6 nebo RHEL 7 z VMware.

Požadavky

V této části se předpokládá, že jste už nainstalovali virtuální počítač RHEL ve VMware. Informace o instalaci operačního systému v prostředí VMware najdete v průvodci instalací hostovaného operačního systému VMware.

  • Při instalaci operačního systému Linux doporučujeme místo LVM používat standardní oddíly, což je často výchozí nastavení pro mnoho instalací. Použití oddílů zabraňuje konfliktům názvů LVM s klonovaným virtuálním počítačem, zejména v případě, že by se disk s operačním systémem někdy potřeboval připojit k jinému virtuálnímu počítači pro účely řešení potíží. LVM nebo RAID je možné použít na datových discích, pokud chcete.
  • Nenakonfigurujte prohození oddílu na disku s operačním systémem. Agenta s Linuxem můžete nakonfigurovat tak, aby na dočasném disku prostředku vytvořil prohození souboru. Další informace najdete v následujících krocích.
  • Při vytváření virtuálního pevného disku vyberte Uložit virtuální disk jako jeden soubor.

RHEL 6 s využitím VMware

Důležité

30. listopadu 2020 dosáhl RHEL 6 konce fáze údržby. Fáze údržby následuje fáze Rozšířené životnosti. S přechodem RHEL 6 z fází úplné údržby důrazně doporučujeme upgradovat na RHEL 7 nebo 8 nebo 9. Pokud potřebujete zůstat na RHEL 6, doporučujeme přidat doplněk podpory rozšířeného životního cyklu RHEL.

  1. V RHEL 6 NetworkManager může kolidovat s agentem Azure Linux. Odinstalujte tento balíček:

    sudo rpm -e --nodeps NetworkManager
    
  2. V adresáři vytvořte soubor s názvem network/etc/sysconfig/, který obsahuje následující text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  3. 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
    
  4. Přesuňte (nebo odeberte) pravidla udev, abyste se vyhnuli generování statických pravidel pro ethernetové rozhraní. Tato pravidla způsobují problémy při klonování virtuálního počítače v Azure nebo 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
    

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

    sudo chkconfig network on
    
  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. 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-6-server-extras-rpms
    
  8. Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Pokud chcete tento krok provést, otevřete /etc/default/grub ho v textovém editoru a upravte GRUB_CMDLINE_LINUX parametr. Příklad:

    GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0"
    

    Tento krok také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port, který může pomoct podpora Azure s laděním problémů. Doporučujeme také odebrat následující parametry:

    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čů.

  9. Přidejte moduly Hyper-V do initramfs:

    Upravte /etc/dracut.confa přidejte následující obsah:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Opětovné sestavení initramfs:

    sudo dracut -f -v
    
  10. 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
    
  11. Nainstalujte agenta Azure s Linuxem:

    sudo yum install WALinuxAgent
    sudo chkconfig waagent on
    
  12. Nevytvávejte místo prohození na disku s operačním systémem.

    Agent Azure s Linuxem může automaticky nakonfigurovat místo prohození pomocí disku místního prostředku, který je připojený k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Místní disk prostředku je dočasný disk a pokud je virtuální počítač zrušený, může být vyprázdněn. Po instalaci agenta Azure Linuxu v předchozím kroku odpovídajícím způsobem upravte následující parametry /etc/waagent.conf :

    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. Zrušení registrace předplatného (v případě potřeby):

    sudo subscription-manager unregister
    
  14. Spuštěním následujících příkazů zrušte zřízení virtuálního počítače a připravte ho na zřízení v Azure:

    Poznámka:

    Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, přeskočte krok zrušení zřízení.

    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. Vypněte virtuální počítač a převeďte soubor VMDK na soubor .vhd.

    Poznámka:

    Ve verzích qemu-img = >2.2.1 existuje známá chyba, která vede k nesprávnému formátování virtuálního pevného disku. Tento problém je opravený v QEMU 2.6. Doporučujeme použít qemu-img 2.2.0 nebo nižší nebo aktualizovat na verzi 2.6 nebo vyšší. Další informace najdete na tomto webu.

    Nejprve převeďte obrázek na nezpracovaný formát:

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

    Ujistěte se, že je velikost nezpracovaného obrázku zarovnaná s 1 MB. V opačném případě zaokrouhlete velikost nahoru tak, aby odpovídala 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
    

    Převeďte nezpracovaný disk na virtuální pevný disk s pevnou velikostí:

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

    Nebo pokud máte qemu verze 2.6 nebo novější, uveďte možnost force_size :

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

RHEL 7 s využitím VMware

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

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

    sudo systemctl enable network
    
  4. 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
    
  5. 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=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
    

    Tato konfigurace také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port, což může pomoct podpora Azure s laděním problémů. Vypne také nové zásady vytváření názvů RHEL 7 pro síťové karty. Kromě toho doporučujeme odebrat následující parametry:

    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čů.

  6. 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
    
  7. Přidejte moduly Hyper-V do initramfs:

    Upravit /etc/dracut.conf, přidat obsah:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Opětovné sestavení initramfs:

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

    ClientAliveInterval 180
    
  9. 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
    
  10. Nainstalujte agenta Azure s Linuxem:

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

    Postupujte podle kroků v části Příprava virtuálního počítače RHEL 7 ze Správce technologie Hyper-V, krok 12 Instalace cloud-init pro zpracování zřizování.

  12. Konfigurace prohození:

    • Nevytvávejte místo prohození na disku s operačním systémem.
    • Postupujte podle kroků v části Příprava virtuálního počítače RHEL 7 z Hyper-V Manageru, krok 13– Konfigurace prohození.
  13. Pokud chcete zrušit registraci předplatného, spusťte následující příkaz:

    sudo subscription-manager unregister
    
  14. Zrušte zřízení podle kroků v části Příprava virtuálního počítače RHEL 7 z Hyper-V Manageru, krok 15, zrušení zřízení.

  15. Vypněte virtuální počítač a převeďte soubor VMDK do formátu VHD.

    Poznámka:

    Ve verzích qemu-img = >2.2.1 existuje známá chyba, která vede k nesprávnému formátování virtuálního pevného disku. Tento problém je opravený v QEMU 2.6. Doporučujeme použít qemu-img 2.2.0 nebo nižší nebo aktualizovat na verzi 2.6 nebo vyšší. Další informace najdete na tomto webu.

    Nejprve převeďte obrázek na nezpracovaný formát:

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

    Ujistěte se, že je velikost nezpracovaného obrázku zarovnaná s 1 MB. V opačném případě zaokrouhlete velikost nahoru tak, aby odpovídala 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
    

    Převeďte nezpracovaný disk na virtuální pevný disk s pevnou velikostí:

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

    Nebo pokud máte qemu verze 2.6 nebo novější, uveďte možnost force_size :

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

Soubor Kickstart

V této části se dozvíte, jak připravit distribuci RHEL 7 z ISO pomocí souboru kickstart.

RHEL 7 ze souboru kickstartu

  1. Vytvořte soubor kickstartu, který obsahuje následující obsah, a soubor uložte. Informace o instalaci kickstartu naleznete v úvodní instalační příručce.

    # 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. Umístěte soubor kickstartu, kde k němu má instalační systém přístup.

  3. Ve Správci technologie Hyper-V vytvořte nový virtuální počítač. Na stránce Připojit virtuální pevný disk vyberte Později připojit virtuální pevný disk a dokončete průvodce novým virtuálním počítačem.

  4. Otevřete nastavení virtuálního počítače:

    1. Připojte k virtuálnímu počítači nový virtuální pevný disk. Nezapomeňte vybrat formát virtuálního pevného disku a pevnou velikost.

    2. Připojte instalační ISO k jednotce DVD.

    3. Nastavte systém BIOS tak, aby se spouštěl z disku CD.

  5. Spusťte virtuální počítač. Až se zobrazí průvodce instalací, vyberte klávesu Tab a nakonfigurujte možnosti spouštění.

  6. Zadejte inst.ks=<the location of the kickstart file> na konci možností spuštění a vyberte klávesu Enter .

  7. Počkejte na dokončení instalace. Po dokončení se virtuální počítač automaticky vypne. Váš virtuální pevný disk s Linuxem je teď připravený k nahrání do Azure.

Známé problémy

Následující problém je známý.

Ovladač Hyper-V nelze zahrnout do počátečního disku RAM při použití hypervisoru jiného typu než Hyper-V.

V některých případech nemusí instalační programy pro Linux do počátečního disku RAM (initrd nebo initramfs) zahrnovat ovladače pro Hyper-V, pokud Linux nezjistí, že je spuštěný v prostředí Hyper-V.

Pokud k přípravě image Linuxu používáte jiný virtualizační systém (například VirtualBox nebo Xen), možná budete muset znovu sestavit initrd, abyste zajistili, že na počátečním disku RAM budou k dispozici alespoň hv_vmbus moduly jádra a hv_storvsc moduly jádra. Tento problém je známý alespoň v systémech založených na nadřazené distribuci Red Hatu.

Pokud chcete tento problém vyřešit, přidejte moduly Hyper-V do initramfs a znovu ho sestavte:

Upravte /etc/dracut.confa přidejte následující obsah:

add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "

Opětovné sestavení initramfs:

sudo dracut -f -v

Další informace naleznete v tématu Opětovné sestavení initramfs.