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 na virtuální pevný disk. Existuje několik nástrojů pro vytvoření souborů .vhd, například virtualizačního ř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 nepodporuje a Azure, protože nezahrnuje požadované ovladače.
  • Formát VHDX není v Azure podporován, 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í systémů souborů 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 hostu. 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 místo LVM používat standardní oddíly (č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 použít na datových discích, pokud je to preferováno.
  • 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 má primárně vliv na starší distribuce používající 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 systému Linux.
  • 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) a změňte řádek enabled=0 pod enabled=1[ol6_addons] nebo [ol7_addons] v tomto souboru.

Oracle Linux 6.X

Důležité

Mějte na úvahu, že Oracle Linux 6.x už je EOL. Oracle Linux verze 6.10 má k dispozici podporu ELS, která skončí 7. 7. 2024.

Musíte dokončit konkrétní kroky konfigurace v operačním systému, aby virtuální počítač běžel v Azure.

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

  2. Kliknutím na Připojení otevřete okno virtuálního počítače.

  3. Odinstalujte NetworkManager spuštěním následujícího příkazu:

    sudo rpm -e --nodeps NetworkManager
    

    Poznámka:

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

  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 Microsoft 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. Spuštěním následujícího příkazu se ujistěte, že se síťová služba spustí při spuštění:

    sudo chkconfig network on
    
  8. Nainstalujte python-pyasn1 spuštěním následujícího příkazu:

    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 to chcete udělat, otevřete soubor /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, že se všechny zprávy konzoly posílají na první sériový port, který může pomoct podpora Azure s problémy s laděním.

    Kromě výše uvedeného 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 chceme, aby se všechny protokoly odesílaly na sériový port.

    Možnost crashkernel může být v případě potřeby nakonfigurovaná, ale všimněte si, že 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 problematické 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í. Obvykle se jedná o výchozí nastavení.

  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 balíčku WALinuxAgent odebere balíčky NetworkManager a NetworkManager-gnome, 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 v souboru /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. 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 waagent -force -deprovision
    sudo export HISTSIZE=0
    sudo logout
    
  14. Klikněte na tlačítko Akce –> vypněte ve Správci technologie Hyper-V. Váš virtuální pevný disk s Linuxem je teď připravený k nahrání do Azure.


Oracle Linux 7.0 a novější

Změny v Oracle Linuxu 7

Příprava virtuálního počítače Oracle Linux 7 pro Azure se podobá Oracle Linuxu 6, ale stojí za zmínku několik důležitých rozdílů:

  • podpora Azure s Oracle Linux s unbreakable Enterprise Kernel (UEK) nebo Red Hat Compatible Kernel. Doporučuje se 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, abyste ho neodebrali.
  • GRUB2 se teď používá jako výchozí bootloader, takže se změnil postup úprav parametrů jádra (viz níže).
  • XFS je teď výchozím systémem souborů. V případě potřeby lze systém souborů ext4 stále použít.

Kroky konfigurace

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

  2. Kliknutím na Připojení 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 Microsoft Azure nebo Hyper-V:

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    
  6. Spuštěním následujícího příkazu se ujistěte, že se síťová služba spustí při spuštění:

    sudo chkconfig network on
    
  7. Nainstalujte balíček python-pyasn1 spuštěním následujícího příkazu:

    sudo yum install python3-pyasn1
    
  8. Spuštěním následujícího příkazu 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 to chcete udělat, otevřete v textovém editoru "/etc/default/grub" a upravte GRUB_CMDLINE_LINUX parametr, například:

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

    Tím se také zajistí, že se všechny zprávy konzoly posílají na první sériový port, což může pomoct podpora Azure s problémy s laděním. Vypne také zásady vytváření názvů síťových adaptérů v Oracle Linuxu 7 s nerozbitným podnikovým jádrem. Kromě výše uvedeného se doporučuje 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 chceme, aby se všechny protokoly odesílaly na sériový port.

    Možnost crashkernel může být v případě potřeby nakonfigurovaná, ale mějte na paměti, že tento parametr sníží množství dostupné paměti na virtuálním počítači o 128 MB nebo více, což může být problematické u menších velikostí virtuálních počítačů.

  10. Po dokončení úprav "/etc/default/grub" výše spusťte následující příkaz, který znovu sestaví 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í. Obvykle se jedná o výchozí nastavení.

  12. Nainstalujte agenta Azure Linux a závislosti:

    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. Konfigurace waagentu 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. Prohození konfigurace Nevytvávejte místo prohození na disku s operačním systémem.

    Dříve se agent Azure Linux použil automaticky ke 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. Tento postup ale teď zpracovává cloud-init, není nutné použít agenta Linuxu k naformátovat disk prostředku vytvořit prohození souboru, odpovídajícím způsobem upravit 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
    

    Pokud chcete připojit, formátovat a vytvořit prohození, můžete provést jednu z těchto akcí:

    • Tuto možnost předejte jako konfiguraci cloud-init při každém vytvoření virtuálního počítače.
    • Použijte direktivu cloud-init vloženou do image, která se provede při každém vytvoření virtuálního počítače:
    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. 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 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. Klikněte na tlačítko Akce –> vypněte ve Správci technologie Hyper-V. Váš virtuální pevný disk s Linuxem je teď připravený k nahrání do Azure.

Další kroky

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.