Azure’da Ubuntu sanal makinesi hazırlama

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

Ubuntu artık adresinde https://cloud-images.ubuntu.com/indirilmesi için resmi Azure VHD'lerini yayımlar. Azure için kendi özelleştirilmiş Ubuntu görüntünüzü oluşturmanız gerekiyorsa, aşağıdaki el ile uygulanan yordamı kullanmak yerine bu bilinen çalışan VHD'lerle başlayıp gerektiğinde özelleştirmeniz önerilir. En son görüntü sürümleri her zaman aşağıdaki konumlarda bulunabilir:

Ön koşullar

Bu makalede, sanal sabit diske zaten bir Ubuntu Linux işletim sistemi yüklediğiniz varsayılır. .vhd dosyaları oluşturmak için birden çok araç vardır, örneğin Hyper-V gibi bir sanallaştırma çözümü. Yönergeler için bkz . Hyper-V Rolünü Yükleme ve Sanal Makine Yapılandırma.

Ubuntu yükleme notları

  • Linux'ı Azure için hazırlama hakkında daha fazla ipucu için lütfen genel Linux Yükleme Notları bölümüne bakın.
  • 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üklerken LVM yerine standart bölümler kullanmanız önerilir (çoğu yükleme için genellikle varsayılandır). Bu, ö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 tercih edilirse veri disklerinde kullanılabilir.
  • İşletim sistemi diskinde değiştirme bölümü veya swapfile yapılandırma. Cloud-init sağlama aracısı, geçici kaynak diskte bir takas dosyası veya takas bölümü oluşturmak için yapılandırılabilir. Bu konuda daha fazla bilgiyi aşağıdaki adımlarda bulabilirsiniz.
  • 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

Dekont

Azure için kendi özel Ubuntu görüntünüzü oluşturmayı denemeden önce lütfen bunun yerine önceden oluşturulmuş ve test edilmiş görüntüleri https://cloud-images.ubuntu.com/ kullanmayı göz önünde bulundurun.

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

  2. Sanal makinenin penceresini açmak için Bağlan'a tıklayın.

  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 önerilir:

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
  1. Ubuntu Azure görüntüleri artık Azure tarafından uyarlanmış çekirdeği kullanıyor. aşağıdaki komutları çalıştırarak işletim sistemini azure tarafından uyarlanmış en son çekirdekle güncelleştirin ve Azure Linux araçlarını (Hyper-V bağımlılıkları dahil) yükleyin:
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
  1. Grub çekirdek önyükleme satırını, Azure için ek çekirdek parametreleri içerecek şekilde değiştirin. Bunu bir metin düzenleyicisinde açmak /etc/default/grub için 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"

Bu dosyayı kaydedip kapatın ve komutunu çalıştırın sudo update-grub. Bu, tüm konsol iletilerinin hata ayıklama sorunlarıyla ilgili Azure teknik desteğine yardımcı olabilecek ilk seri bağlantı noktasına gönderilmesini sağlar.

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

  2. cloud-init (sağlama aracısı) ve Azure Linux Aracısı'nı (konuk uzantıları işleyicisi) yükleyin. 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

Dekont

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

  1. Azure'da cloud-init sağlama ile çakışabilecek cloud-init varsayılan yapılandırmalarını ve kalan netplan yapıtlarını kaldırın:
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
  1. Azure veri kaynağını kullanarak sistemi sağlamak için cloud-init'i yapılandırın:
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
  1. Azure Linux aracısını sağlamayı gerçekleştirmek için cloud-init'e güvenecek şekilde yapılandırın. Bu seçenekler hakkında daha fazla bilgi için WALinuxAgent projesine göz atı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
  1. Cloud-init ve Azure Linux aracısı çalışma zamanı yapıtlarını ve günlüklerini temizleyin:
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
  1. Sanal makinenin sağlamasını kaldırıp Azure'da sağlama için hazırlamak için aşağıdaki komutları çalıştırın:

Dekont

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

Uyarı

Yukarıdaki komutu kullanarak sağlamayı kaldırma, görüntünün tüm hassas bilgilerden temizlendiğini garanti etmez ve yeniden dağıtım için uygundur.

sudo waagent -force -deprovision+user
sudo rm -f ~/.bash_history
  1. Eylem -> Hyper-V Yöneticisi'nde Kapat'a tıklayın.

  2. 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. Lütfen buradaki belgelere Convert-VHD göz atın: Convert-VHD.

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

  4. Dizini önyükleme EFI diziniyle değiştirin:

cd /boot/efi/EFI
  1. ubuntu dizinini boot adlı yeni bir dizine kopyalayın:
sudo cp -r ubuntu/ boot
  1. Dizini yeni oluşturulan önyükleme diziniyle değiştirin:
cd boot
  1. shimx64.efi dosyasını yeniden adlandırın:
sudo mv shimx64.efi bootx64.efi
  1. grub.cfg dosyasını bootx64.cfg olarak yeniden adlandırın:
sudo mv grub.cfg bootx64.cfg

Sonraki adımlar

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