Share via


Azure için Oracle Linux sanal makinesi hazırlama

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

Bu makalede, bir sanal sabit diske oracle 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.

Oracle Linux yükleme notları

  • Linux'ı Azure için hazırlama hakkında daha fazla ipucu için bkz . Genel Linux Yükleme Notları .
  • Bölünemez Kurumsal Çekirdek (UEK) veya Red Hat Uyumlu Çekirdek ile Hyper-V ve Azure desteği Oracle Linux.
  • Oracle'ın UEK2'si Hyper-V ve Azure'da desteklenmez çünkü gerekli sürücüleri içermez.
  • VHDX biçimi Azure'da desteklenmez, yalnızca sabit VHD'dir. Hyper-V Yöneticisi'ni veya convert-vhd cmdlet'ini kullanarak diski VHD biçimine dönüştürebilirsiniz.
  • UDF dosya sistemlerini bağlamak için çekirdek desteği gereklidir. Azure'da ilk önyüklemede, sağlama yapılandırması Konuk'a bağlı UDF biçimli medya aracılığıyla Linux VM'ye geçirilir. Azure Linux aracısı, yapılandırmasını okumak ve VM'yi sağlamak için UDF dosya sistemini bağlayabilmelidir.
  • Linux sistemini yüklerken LVM yerine standart bölümler kullanmanızı öneririz (çoğu yükleme için genellikle varsayılandır). 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 tercih edilirse veri disklerinde kullanılabilir.
  • 2.6.37'den önceki Linux çekirdek sürümleri, daha büyük VM boyutlarına sahip Hyper-V üzerinde NUMA'nın desteklemiyor. Bu sorun öncelikli olarak yukarı akış Red Hat 2.6.32 çekirdeğini kullanan eski dağıtımları etkiler ve Oracle Linux 6.6 ve sonraki sürümlerde düzeltilmiştir.
  • İşletim sistemi diskinde değiştirme bölümü yapılandırmayı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ı .
  • Deponun etkinleştirildiğinden Addons emin olun. Dosyayı /etc/yum.repos.d/public-yum-ol6.repo(Oracle Linux 6) veya /etc/yum.repos.d/public-yum-ol7.repo(Oracle Linux 7) düzenleyin ve satırı enabled=0enabled=1 bu dosyadaki [ol6_addons] veya [ol7_addons] altında olarak değiştirin.

Oracle Linux 6.X

Önemli

Oracle Linux 6.x'in zaten EOL olduğunu göz önünde bulundurun. Oracle Linux sürüm 6.10, 07/2024 tarihinde sona erecek els desteğine sahiptir.

Sanal makinenin Azure'da çalışması için işletim sisteminde belirli yapılandırma adımlarını tamamlamanız gerekir.

  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. Aşağıdaki komutu çalıştırarak NetworkManager'ı kaldırın:

    sudo rpm -e --nodeps NetworkManager
    

    Dekont

    Paket henüz yüklü değilse, bu komut bir hata iletisiyle başarısız olur. Bu iletiler beklenir.

  4. Dizinde /etc/sysconfig/ aşağıdaki metni içeren network adlı bir dosya oluşturun:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Dizininde /etc/sysconfig/network-scripts/ aşağıdaki metni içeren ifcfg-eth0 adlı bir dosya oluşturun:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. Ethernet arabirimleri için statik kurallar oluşturmaktan kaçınmak için udev kurallarını değiştirin. Bu kurallar, Microsoft Azure veya Hyper-V'de bir sanal makineyi klonlarken sorunlara neden olabilir:

    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. Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlatıldığından emin olun:

    sudo chkconfig network on
    
  8. Aşağıdaki komutu çalıştırarak python-pyasn1'i yükleyin:

    sudo yum install python-pyasn1
    
  9. Grub yapılandırmanızdaki çekirdek önyükleme satırını, Azure için daha fazla çekirdek parametresi içerecek şekilde değiştirin. Bunu yapmak için metin düzenleyicisinde "/boot/grub/menu.lst" dosyasını açın ve çekirdeğin aşağıdaki parametreleri içerdiğinden emin olun:

    console=ttyS0 earlyprintk=ttyS0
    

    Bu ayar, tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesini sağlar ve hata ayıklama sorunlarıyla ilgili Azure desteği yardımcı olabilir.

    Yukarıdakilere ek olarak, aşağıdaki parametreleri kaldırmanızı öneririz:

    rhgb quiet crashkernel=auto
    

    Grafik ve sessiz önyükleme, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğimiz bir bulut ortamında kullanışlı değildir.

    İsterseniz crashkernel seçenek yapılandırılabilir, ancak bu parametrenin VM'deki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve daha küçük VM boyutlarında sorunlu olabileceğini unutmayın.

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

  11. Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı yükleyin. En son sürüm 2.0.15'tir.

    sudo yum install WALinuxAgent
    

    WALinuxAgent paketinin yüklenmesi, 2. adımda açıklandığı gibi henüz kaldırılmamışsa NetworkManager ve NetworkManager-gnome paketlerini kaldırır.

  12. İşletim sistemi diskinde değiştirme alanı oluşturmayın.

    Azure Linux Aracısı, Azure'da sağlama sonrasında VM'ye bağlı yerel kaynak diskini kullanarak değiştirme alanını otomatik olarak yapılandırabilir. Yerel kaynak diski geçici bir disktir ve VM'nin yetkisi kaldırıldığında boşaltılabilir. Azure Linux Aracısı'nı yükledikten sonra (önceki adıma bakın), /etc/waagent.conf dosyasında aşağıdaki parametreleri uygun şekilde değiştirin:

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

    sudo waagent -force -deprovision
    sudo export HISTSIZE=0
    sudo logout
    
  14. Eylem -> Hyper-V Yöneticisi'nde Kapat'a tıklayın. Linux VHD'niz artık Azure'a yüklenmeye hazırdır.


Oracle Linux 7.0 ve üzeri

Oracle Linux 7'deki değişiklikler

Azure için Oracle Linux 7 sanal makinesi hazırlamak Oracle Linux 6'ya benzer, ancak dikkate değer birkaç önemli fark vardır:

  • Oracle Linux'u Bölünemez Kurumsal Çekirdek (UEK) veya Red Hat Uyumlu Çekirdek ile Azure desteği. UEK ile Oracle Linux önerilir.
  • NetworkManager paketi artık Azure Linux aracısı ile çakışmaz. Bu paket varsayılan olarak yüklenir ve kaldırılmaması önerilir.
  • GRUB2 artık varsayılan önyükleme yükleyicisi olarak kullanıldığından çekirdek parametrelerini düzenleme yordamı değişmiştir (aşağıya bakın).
  • XFS artık varsayılan dosya sistemidir. İsterseniz ext4 dosya sistemi hala kullanılabilir.

Yapılandırma adımları

  1. Hyper-V Yöneticisi'nde sanal makineyi seçin.

  2. Sanal makine için bir konsol penceresi açmak için Bağlan'e tıklayın.

  3. Dizinde /etc/sysconfig/ aşağıdaki metni içeren network adlı bir dosya oluşturun:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. Dizininde /etc/sysconfig/network-scripts/ aşağıdaki metni içeren ifcfg-eth0 adlı bir dosya oluşturun:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  5. Ethernet arabirimleri için statik kurallar oluşturmaktan kaçınmak için udev kurallarını değiştirin. Bu kurallar, Microsoft Azure veya Hyper-V'de bir sanal makineyi klonlarken sorunlara neden olabilir:

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    
  6. Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlatıldığından emin olun:

    sudo chkconfig network on
    
  7. Aşağıdaki komutu çalıştırarak python-pyasn1 paketini yükleyin:

    sudo yum install python3-pyasn1
    
  8. Geçerli yum meta verilerini temizlemek ve güncelleştirmeleri yüklemek için aşağıdaki komutu çalıştırın:

    sudo yum clean all
    sudo yum -y update
    
  9. Grub yapılandırmanızdaki çekirdek önyükleme satırını, Azure için daha fazla çekirdek parametresi içerecek şekilde değiştirin. Bunu yapmak için metin düzenleyicisinde "/etc/default/grub" dosyasını açın ve parametresini GRUB_CMDLINE_LINUX düzenleyin, örneğin:

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

    Bu, tüm konsol iletilerinin hata ayıklama sorunlarıyla Azure desteği yardımcı olabilecek ilk seri bağlantı noktasına gönderilmesini de sağlar. Ayrıca, Bölünemez Kurumsal Çekirdek ile Oracle Linux 7'deki NIC'ler için adlandırma kurallarını kapatır. Yukarıdakilere ek olarak, aşağıdaki parametrelerin kaldırılması önerilir:

       rhgb quiet crashkernel=auto
    

    Grafik ve sessiz önyükleme, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğimiz bir bulut ortamında kullanışlı değildir.

    İsterseniz crashkernel seçenek yapılandırılabilir, ancak bu parametrenin VM'deki kullanılabilir bellek miktarını 128 MB veya daha fazla azaltacağını ve daha küçük VM boyutlarında sorunlu olabileceğini unutmayın.

  10. Yukarıdaki başına "/etc/default/grub" düzenlemesini tamamladıktan sonra grub yapılandırmasını yeniden derlemek için aşağıdaki komutu çalıştırın:

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

  12. Azure Linux Aracısı'nı ve bağımlılıklarını yükleyin:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent
    
  13. Sağlamayı işlemek için cloud-init yükleme

    sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
  14. cloud-init için waagent yapılandırma

    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. Yapılandırmayı değiştirme. İşletim sistemi diskinde değiştirme alanı oluşturmayın.

    Daha önce Azure Linux Aracısı, Azure'da sanal makine sağlandıktan sonra sanal makineye bağlı yerel kaynak diski kullanılarak değiştirme alanını yapılandırmak için otomatik olarak kullanılıyordu. Ancak, bu artık cloud-init tarafından işlenir, kaynak diskini biçimlendirmek için Linux Aracısı'nı kullanmamalısınız takas dosyasını oluşturun, aşağıdaki parametreleri /etc/waagent.conf uygun şekilde değiştirin:

    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
    

    Bağlama, biçimlendirme ve değiştirme oluşturmak istiyorsanız şunları yapabilirsiniz:

    • Her VM oluşturduğunuzda bunu cloud-init yapılandırması olarak geçirin
    • Vm her oluşturulduğunda bunu yapacak görüntüde pişirilen bir cloud-init yönergesi kullanın:
    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. 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:

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

    Dekont

    Belirli bir sanal makineyi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız sağlamayı kaldırma adımını atlayın.

  17. Eylem -> Hyper-V Yöneticisi'nde Kapat'a tıklayın. Linux VHD'niz artık Azure'a yüklenmeye hazırdır.

Sonraki adımlar

Artık Azure'da yeni sanal makineler oluşturmak için Oracle 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.