Sdílet prostřednictvím


Příprava virtuálního počítače s Oracle Linuxem pro Azure

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

Tento článek předpokládá, že jste již nainstalovali operační systém Oracle Linux (OS) na virtuální pevný disk (VHD). Existuje několik nástrojů pro vytvoření souborů .vhd. Příkladem je virtualizační řešení, jako je Hyper-V. Pokyny najdete v tématu Instalace role Hyper-V a konfigurace virtuálního počítače.

Poznámky k instalaci Oracle Linuxu

  • Další tipy k přípravě Linuxu pro Azure najdete v obecných poznámkách k instalaci Linuxu.
  • Hyper-V a podpora Azure Oracle Linux s nepolomitelným podnikovým jádrem (UEK) nebo jádrem kompatibilním s Red Hat.
  • UEK2 Oracle se v Hyper-V a Azure nepodporuje, protože neobsahuje požadované ovladače.
  • Formát VHDX není v Azure podporovaný, pouze pevný virtuální pevný disk. Disk můžete převést na formát VHD pomocí Správce technologie Hyper-V nebo rutiny convert-vhd .
  • Vyžaduje se podpora jádra pro připojení uživatelem definovaných funkcí (UDF). Při prvním spuštění v Azure se konfigurace zřizování předá virtuálnímu počítači s Linuxem prostřednictvím média formátovaného uživatelem definovaného uživatelem, které je připojené k hostovi. 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.
  • Při instalaci systému Linux doporučujeme používat standardní oddíly místo Správce logických svazků (LVM), což je často výchozí nastavení pro mnoho instalací. Tyto standardní oddíly zabraňují konfliktům názvů LVM s klonovanými virtuálními počítači, zejména pokud 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 lze také použít na datových discích.
  • Verze jádra Linuxu starší než 2.6.37 nepodporují technologii NUMA na Hyper-V s většími velikostmi virtuálních počítačů. Tento problém se týká především starších distribucí, které používají upstreamové jádro Red Hat 2.6.32 a opravené v Oracle Linuxu 6.6 a novějším.
  • Nenakonfigurujte prohození oddílu na disku s operačním systémem.
  • 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 poznámkách k instalaci Linuxu.
  • Ujistěte se, že Addons je úložiště povolené. Upravte soubor /etc/yum.repos.d/public-yum-ol6.repo(Oracle Linux 6) nebo /etc/yum.repos.d/public-yum-ol7.repo(Oracle Linux 7). V tomto souboru změňte řádek enabled=0 na enabled=1 [ol6_addons] nebo [ol7_addons].

Oracle Linux 6.X

Důležité

Mějte na paměti, že Oracle Linux 6.x je již na konci životnosti. Oracle Linux verze 6.10 má k dispozici rozšířenou podporu životního cyklu, která končí červenec 2024.

Pro spuštění virtuálního počítače v Azure musíte provést konkrétní konfigurační kroky v operačním systému.

  1. V prostředním podokně Správce technologie Hyper-V vyberte virtuální počítač.

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

  3. Odinstalace NetworkManager:

    sudo rpm -e --nodeps NetworkManager
    

    Poznámka:

    Pokud balíček ještě není nainstalovaný, tento příkaz selže s chybovou zprávou. Tato zpráva se očekává.

  4. V adresáři vytvořte soubor s názvem network/etc/sysconfig/, který obsahuje následující text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. V adresáři vytvořte soubor s názvem ifcfg-eth0/etc/sysconfig/network-scripts/, který obsahuje následující text:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. Upravte pravidla udev, aby se zabránilo generování statických pravidel pro ethernetová rozhraní. Tato pravidla můžou způsobovat 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
    
  7. Ujistěte se, že se síťová služba spouští při spuštění:

    sudo chkconfig network on
    
  8. Nainstalujte python-pyasn1:

    sudo yum install python-pyasn1
    
  9. 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 /boot/grub/menu.lst v textovém editoru a ujistěte se, že jádro obsahuje následující parametry:

    console=ttyS0 earlyprintk=ttyS0
    

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

    Kromě předchozích kroků 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.

    Možnost crashkernel můžete nechat nakonfigurovanou, pokud chcete. 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. 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í.

  11. Nainstalujte agenta Azure Linux spuštěním následujícího příkazu. Nejnovější verze je 2.0.15.

    sudo yum install WALinuxAgent
    

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

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

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

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    ## NOTE: set this to whatever you need it to be.
    
  13. Zrušte zřízení virtuálního počítače a připravte ho na zřizování v Azure:

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


Oracle Linux 7.0 a novější

Pokud používáte Oracle Linux 7.0 nebo novější, postupujte podle pokynů v dalších částech.

Změny v Oracle Linuxu 7

Příprava virtuálního počítače s Oracle Linuxem 7 pro Azure je podobná Oracle Linuxu 6, ale stojí za zmínku několik rozdílů:

  • podpora Azure s Oracle Linux s unbreakable Enterprise Kernel (UEK) nebo Red Hat Compatible Kernel. Doporučujeme používat Oracle Linux s UEK.
  • Balíček NetworkManager už není v konfliktu s agentem Azure Linux. Tento balíček je ve výchozím nastavení nainstalovaný a doporučujeme ho neodebrat.
  • GRUB2 se teď používá jako výchozí spouštěcí zavaděč, takže se změnil postup úprav parametrů jádra. (Viz část Kroky konfigurace.)
  • XFS je teď výchozím systémem souborů. Systém souborů ext4 je stále možné použít, pokud chcete.

Kroky konfigurace

  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 adresáři vytvořte soubor s názvem network/etc/sysconfig/, který obsahuje následující text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. V adresáři vytvořte soubor s názvem ifcfg-eth0/etc/sysconfig/network-scripts/, který obsahuje následující text:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  5. Upravte pravidla udev, aby se zabránilo generování statických pravidel pro ethernetová rozhraní. Tato pravidla můžou způsobovat 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
    
  6. Ujistěte se, že se síťová služba spouští při spuštění:

    sudo chkconfig network on
    
  7. python-pyasn1 Nainstalujte balíček:

    sudo yum install python3-pyasn1
    
  8. Vymažte aktuální metadata yum a nainstalujte všechny aktualizace:

    sudo yum clean all
    sudo yum -y update
    
  9. 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 net.ifnames=0"
    

    Tato úprava 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. Vypne také zásady vytváření názvů pro síťové karty v Oracle Linuxu 7 pomocí UEK. 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.

    Možnost crashkernel můžete nechat nakonfigurovanou, pokud chcete. 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/grubznovu sestavte konfiguraci grubu:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  11. 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í.

  12. Nainstalujte agenta a závislosti Azure Linuxu:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent
    
  13. Instalace cloud-init pro zpracování zřizování:

    sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
  14. Konfigurovat waagent pro cloud-init:

    sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf
    sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf
    
    sudo echo "Adding mounts and disk_setup to init stage"
    sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg
    sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg
    sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg
    sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg
    
    echo "Allow only Azure datasource, disable fetching network setting via IMDS"
    
    sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF
    datasource_list: [ Azure ]
    datasource:
        Azure:
            apply_network_config: False
    EOF
    
    
    if [[ -f /mnt/resource/swapfile ]]; then
    echo Removing swapfile - Oracle Linux uses a swapfile by default
    swapoff /mnt/swapfile
    rm /mnt/swapfile -f
    fi
    
    echo "Add console log file"
    cat >> /etc/cloud/cloud.cfg.d/05_logging.cfg <<EOF
    
    # This tells cloud-init to redirect its stdout and stderr to
    # 'tee -a /var/log/cloud-init-output.log' so the user can see output
    # there without needing to look on the console.
    output: {all: '| tee -a /var/log/cloud-init-output.log'}
    EOF
    
  15. Konfigurace prohození:

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

      Dříve se agent Azure s Linuxem použil automaticky ke konfiguraci prohození místa pomocí disku místního prostředku připojeného k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Teď ale cloud-init tento krok zpracuje. 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 :

      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
      
    2. 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.
      • K tomuto kroku při každém vytvoření virtuálního počítače použijte direktivu cloud-init upečenou do image:
      echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
      cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF
      #cloud-config
      # Generated by Azure cloud image build
      disk_setup:
        ephemeral0:
          table_type: mbr
          layout: [66, [33, 82]]
          overwrite: True
      fs_setup:
        - device: ephemeral0.1
          filesystem: ext4
        - device: ephemeral0.2
          filesystem: swap
      mounts:
        - ["ephemeral0.1", "/mnt/resource"]
        - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"]
      EOF
      
  16. Zrušte zřízení virtuálního počítače a připravte ho na zřizování v Azure:

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

    Poznámka:

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

  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.

Teď jste připraveni k vytvoření nových virtuálních počítačů v Azure použít oracle Linux .vhd. Pokud soubor .vhd nahráváte do Azure poprvé, přečtěte si téma Vytvoření virtuálního počítače s Linuxem z vlastního disku.