Azure’da Ubuntu sanal makinesi hazırlama

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Ubuntu artık Ubuntu Bulut Görüntüleri web sayfasında indirilmek üzere resmi Azure sanal sabit diskleri (VHD) yayımlıyor. Aşağıdaki el ile uygulanan yordamı kullanmak yerine Azure için kendi özelleştirilmiş Ubuntu görüntünüzü oluşturmanız gerekiyorsa, bu bilinen çalışan VHD'lerle başlayın ve gerektiğinde bunları özelleştirin. En son görüntü sürümlerini her zaman aşağıdaki konumlarda bulabilirsiniz:

Önkoşullar

Bu makalede, bir VHD'ye zaten bir Ubuntu Linux işletim sistemi (OS) yüklediğiniz varsayılır. .vhd dosyaları oluşturmak için birden çok araç vardır. Hyper-V gibi bir sanallaştırma çözümü örnek olarak verilmiştir. Yönergeler için bkz . Hyper-V rolünü yükleme ve bir sanal makine (VM) yapılandırma.

Ubuntu yükleme notları

  • Azure için Linux hazırlama hakkında daha fazla ipucu için bkz . Genel Linux yükleme notları.
  • VHDX biçimi Azure'da desteklenmez, yalnızca sabit VHD'de desteklenir. Hyper-V Yöneticisi'ni veya cmdlet'ini kullanarak diski VHD biçimine Convert-VHD dönüştürebilirsiniz.
  • Linux sistemini yüklediğinizde, genellikle birçok yükleme için varsayılan olan Mantıksal Birim Yöneticisi (LVM) yerine standart bölümler kullanmanızı öneririz. Bu standart bölümler, özellikle sorun giderme için başka bir VM'ye bir işletim sistemi diski eklenmesi gerekiyorsa, kopyalanan VM'lerle LVM adı çakışmalarını önler. LVM veya RAID , veri disklerinde de kullanılabilir.
  • İşletim sistemi diskinde değiştirme bölümü veya takas dosyası yapılandırma. Geçici kaynak diskinde cloud-init takas dosyası veya değiştirme bölümü oluşturmak için sağlama aracısını yapılandırabilirsiniz. Bu işlem hakkında daha fazla bilgi için aşağıdaki adımlara bakın.
  • Azure'da tüm VHD'lerin 1 MB'a hizalanmış bir sanal boyutu olmalıdır. Ham diskten VHD'ye dönüştürürken, dönüştürmeden önce ham disk boyutunun 1 MB'ın katı olduğundan emin olmanız gerekir. Daha fazla bilgi için bkz . Linux yükleme notları.

El ile uygulanan adımlar

Not

Azure için kendi özel Ubuntu görüntünüzü oluşturmaya çalışmadan önce, bunun yerine Ubuntu Bulut Görüntüleri web sayfasındaki önceden oluşturulmuş ve test edilmiş görüntüleri kullanmayı göz önünde bulundurun.

  1. Hyper-V Yöneticisi'nin orta bölmesinde VM'yi seçin.

  2. VM penceresini açmak için Bağlan'ı seçin.

  3. Ubuntu'nun Azure deposunu kullanmak için görüntüdeki geçerli depoları değiştirin.

    düzenlemeden /etc/apt/sources.listönce bir yedekleme yapmanızı öneririz:

    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. Ubuntu Azure görüntüleri artık Azure tarafından uyarlanmış çekirdeği kullanıyor. İşletim sistemini azure tarafından uyarlanmış en son çekirdekle güncelleştirin ve Azure Linux araçlarını yükleyin (Hyper-V bağımlılıkları dahil):

    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. GRUB için çekirdek önyükleme satırını, Azure için ek çekirdek parametreleri içerecek şekilde değiştirin. Bu adımı gerçekleştirmek için bir metin düzenleyicisinde açın /etc/default/grub , adlı GRUB_CMDLINE_LINUX_DEFAULT değişkeni bulun (veya gerekirse ekleyin) ve aşağıdaki parametreleri içerecek şekilde düzenleyin:

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300 quiet splash"
    
  6. Bu dosyayı kaydedip kapatın ve komutunu çalıştırın sudo update-grub. Bu adım, tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesini sağlar ve bu da hata ayıklama sorunlarıyla ilgili Azure teknik desteğine yardımcı olabilir.

  7. SSH sunucusunun yüklendiğinden ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun. Bu ayar genellikle varsayılan ayardır.

  8. Yükleme cloud-init (sağlama aracısı) ve Azure Linux aracısı (konuk uzantıları işleyicisi). Cloud-init, sistem ağ yapılandırmasını (sağlama sırasında ve sonraki her önyükleme sırasında) yapılandırmak ve gdisk kaynak diskleri bölümlendirmek için kullanırnetplan.

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

    Not

    Paket walinuxagent yüklüyse ve NetworkManager-gnome paketlerini kaldırabilirNetworkManager.

  9. Azure'da sağlamayla cloud-init çakışabilecek varsayılan yapılandırmaları ve kalan netplan yapıtları kaldırıncloud-init:

    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. Azure veri kaynağını kullanarak sistemi sağlamak için yapılandırın cloud-init :

    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. Azure Linux aracısını sağlamayı gerçekleştirmek için güvenecek cloud-init şekilde yapılandırın. Bu seçenekler hakkında daha fazla bilgi için WALinuxAgent projesine bakın.

    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. Temiz cloud-init ve Azure Linux aracısı çalışma zamanı yapıtları ve günlükleri:

    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. VM'nin sağlamasını kaldırın ve Azure'da sağlama için hazırlayın.

    Not

    sudo waagent -force -deprovision+user komutu, sistemi temizlemeye ve yeniden sağlama için uygun hale getirme girişiminde bulunarak görüntüyü genelleştirir. seçeneği +user , sağlanan son kullanıcı hesabını ve ilişkili verileri siler.

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

    Uyarı

    Önceki komutu kullanarak sağlamayı kaldırma, görüntünün tüm hassas bilgilerden temizlendiğini ve yeniden dağıtım için uygun olduğunu garanti etmez.

  14. Hyper-V Yöneticisi'nde Eylem>Kapat'ı seçin.

  15. Azure yalnızca sabit boyutlu VHD'leri kabul eder. VM'nin işletim sistemi diski sabit boyutlu bir VHD değilse PowerShell cmdlet'ini Convert-VHD -VHDType Fixed kullanın ve seçeneğini belirtin. Daha fazla bilgi için Convert-VHD Convert-VHD'deki belgeleri inceleyin.

  16. Azure'da 2. Nesil VM getirmek için şu adımları izleyin:

    1. Dizini şu dizinle boot EFI değiştirin:

      cd /boot/efi/EFI
      
    2. ubuntu Dizini adlı bootyeni bir dizine kopyalayın:

      sudo cp -r ubuntu/ boot
      
    3. Dizini yeni oluşturulan önyükleme diziniyle değiştirin:

      cd boot
      
    4. Dosyayı yeniden adlandırın shimx64.efi :

      sudo mv shimx64.efi bootx64.efi
      
    5. Dosyayı olarak bootx64.cfgyeniden adlandırıngrub.cfg:

      sudo mv grub.cfg bootx64.cfg
      

Artık Azure'da yeni VM'ler oluşturmak için Ubuntu Linux VHD'nizi kullanmaya hazırsınız. .vhd dosyasını Azure'a ilk kez yüklüyorsanız bkz . Özel diskten Linux VM oluşturma.