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

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

Ubuntu teď publikuje oficiální virtuální pevné disky Azure (VHD) ke stažení na webové stránce s obrázky cloudu Ubuntu. Pokud potřebujete vytvořit vlastní specializovanou image Ubuntu pro Azure místo ručního postupu, který následuje, začněte těmito známými funkčními virtuálními pevnými disky a podle potřeby je upravte. Nejnovější verze imagí můžete kdykoli najít v následujících umístěních:

Požadavky

Tento článek předpokládá, že jste již nainstalovali operační systém Ubuntu Linux (OS) na virtuální pevný disk. 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 Ubuntu

  • Další tipy k přípravě Linuxu pro Azure najdete v obecných poznámkách k instalaci Linuxu.
  • 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 .
  • 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.
  • Nenakonfigurujte prohození oddílu ani prohození souboru na disku s operačním systémem. Agenta cloud-init zřizování můžete nakonfigurovat tak, aby na dočasném disku prostředku vytvořil prohození souboru nebo prohození oddílu. Další informace o tomto procesu 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 poznámkách k instalaci Linuxu.

Ruční kroky

Poznámka:

Než se pokusíte vytvořit vlastní image Ubuntu pro Azure, zvažte místo toho použití předem připravených a otestovaných imagí z webové stránky Obrázky cloudu Ubuntu.

  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. Nahraďte aktuální úložiště v imagi tak, aby používala úložiště Azure s Ubuntu.

    Před úpravou /etc/apt/sources.listdoporučujeme vytvořit zálohu:

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
    sudo sed -i 's#http://archive\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list
    sudo sed -i 's#http://[a-z][a-z]\.archive\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list
    sudo sed -i 's#http://security\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list
    sudo sed -i 's#http://[a-z][a-z]\.security\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list
    sudo apt-get update
    
  4. Image Ubuntu Azure teď používají jádro na míru Azure. Aktualizujte operační systém na nejnovější jádro na míru Azure a nainstalujte nástroje Azure Linuxu (včetně závislostí Hyper-V):

    sudo apt update
    sudo apt install linux-azure linux-image-azure linux-headers-azure linux-tools-common linux-cloud-tools-common linux-tools-azure linux-cloud-tools-azure
    sudo apt full-upgrade
    sudo reboot
    
  5. Upravte spouštěcí řádek jádra pro GRUB tak, aby zahrnoval další parametry jádra pro Azure. Pokud chcete tento krok provést, otevřete /etc/default/grub v textovém editoru, vyhledejte proměnnou s názvem GRUB_CMDLINE_LINUX_DEFAULT (nebo ji v případě potřeby přidejte) a upravte ji tak, aby obsahovala následující parametry:

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300 quiet splash"
    
  6. Uložte a zavřete tento soubor a spusťte sudo update-grubpříkaz . Tento krok zajistí, že se všechny zprávy konzoly posílají na první sériový port, který může pomoct technické podpoře Azure při ladění problémů.

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

  8. Nainstalujte cloud-init (zřizovacího agenta) a agenta Azure Linux (obslužná rutina rozšíření hosta). Cloud-init používá netplan ke konfiguraci systémové sítě (během zřizování a každého následného spuštění) a gdisk k dělení disků prostředků.

    sudo apt update
    sudo apt install cloud-init gdisk netplan.io walinuxagent && systemctl stop walinuxagent
    

    Poznámka:

    Balíček walinuxagent může odebrat NetworkManager a NetworkManager-gnome balíčky, pokud jsou nainstalované.

  9. Odeberte cloud-init výchozí konfigurace a artefakty, netplan které můžou být v konfliktu se zřizováním cloud-init v Azure:

    sudo rm -f /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg /etc/cloud/cloud.cfg.d/curtin-preserve-sources.cfg /etc/cloud/cloud.cfg.d/99-installer.cfg /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg
    sudo rm -f /etc/cloud/ds-identify.cfg
    sudo rm -f /etc/netplan/*.yaml
    
  10. Nakonfigurujte cloud-init zřízení systému pomocí zdroje dat Azure:

    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg
    datasource_list: [ Azure ]
    EOF
    
    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/90-azure.cfg
    system_info:
       package_mirrors:
         - arches: [i386, amd64]
           failsafe:
             primary: http://archive.ubuntu.com/ubuntu
             security: http://security.ubuntu.com/ubuntu
           search:
             primary:
               - http://azure.archive.ubuntu.com/ubuntu/
             security: []
         - arches: [armhf, armel, default]
           failsafe:
             primary: http://ports.ubuntu.com/ubuntu-ports
             security: http://ports.ubuntu.com/ubuntu-ports
    EOF
    
    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg
    reporting:
      logging:
        type: log
      telemetry:
        type: hyperv
    EOF
    
  11. Nakonfigurujte agenta Azure s Linuxem tak, aby se spoléhal na cloud-init provádění zřizování. Další informace o těchto možnostech najdete v projektu WALinuxAgent.

    sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf
    sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/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
    
    cat <<EOF | sudo tee -a /etc/waagent.conf
    # For Azure Linux agent version >= 2.2.45, this is the option to configure,
    # enable, or disable the provisioning behavior of the Linux agent.
    # Accepted values are auto (default), waagent, cloud-init, or disabled.
    # A value of auto means that the agent will rely on cloud-init to handle
    # provisioning if it is installed and enabled, which in this case it will.
    Provisioning.Agent=auto
    EOF
    
  12. Vyčištění cloud-init artefaktů a protokolů modulu runtime agenta Azure s Linuxem:

    sudo cloud-init clean --logs --seed
    sudo rm -rf /var/lib/cloud/
    sudo systemctl stop walinuxagent.service
    sudo rm -rf /var/lib/waagent/
    sudo rm -f /var/log/waagent.log
    
  13. Zrušte zřízení virtuálního počítače a připravte ho na zřizování v Azure.

    Poznámka:

    Příkaz sudo waagent -force -deprovision+user zobecní image tím, že se pokusí systém vyčistit a nastavit ho jako vhodný pro opětovné zřízení. Tato +user možnost odstraní poslední zřízený uživatelský účet a přidružená data.

    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    

    Upozorňující

    Zrušení zřízení pomocí předchozího příkazu nezaručuje, že image bude vymazána ze všech citlivých informací a je vhodná pro redistribuci.

  14. Ve Správci technologie Hyper-V vyberte akci>vypnout.

  15. Azure přijímá jenom virtuální pevné pevné disky. Pokud disk s operačním systémem virtuálního počítače není pevným virtuálním pevným diskem, použijte rutinu Convert-VHD PowerShellu a zadejte -VHDType Fixed možnost. Další informace najdete v dokumentaci k Convert-VHD převodu virtuálního pevného disku.

  16. Pokud chcete přenést virtuální počítač 2. generace do Azure, postupujte takto:

    1. Změňte adresář na boot EFI adresář:

      cd /boot/efi/EFI
      
    2. ubuntu Zkopírujte adresář do nového adresáře s názvemboot:

      sudo cp -r ubuntu/ boot
      
    3. Změňte adresář na nově vytvořený spouštěcí adresář:

      cd boot
      
    4. shimx64.efi Přejmenujte soubor:

      sudo mv shimx64.efi bootx64.efi
      
    5. grub.cfg Přejmenujte soubor na bootx64.cfg:

      sudo mv grub.cfg bootx64.cfg
      

Teď jste připraveni použít virtuální pevný disk s Ubuntu Linuxem k vytvoření nových virtuálních počítačů v Azure. 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.