Azure'da Red Hat tabanlı bir sanal makine hazırlama

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

Bu makalede, Red Hat Enterprise Linux (RHEL) sanal makinesini Azure'da kullanıma hazırlamayı öğreneceksiniz. Bu makalede ele alınan RHEL sürümleri 6.X, 7.X ve 8.X'lerdir. Bu makalede ele alınan hazırlık hiper yöneticileri Hyper-V, çekirdek tabanlı sanal makine (KVM) ve VMware'dir. Red Hat'in Cloud Access programına katılım için uygunluk gereksinimleri hakkında daha fazla bilgi için bkz . Red Hat'in Cloud Access web sitesi ve Azure'da RHEL Çalıştırma. RHEL görüntüleri derlemeyi otomatikleştirmenin yolları için bkz . Azure Görüntü Oluşturucusu.

Dekont

Kullanım Süresi Sonu (EOL) olan ve artık Redhat tarafından desteklenmeyen sürümlere dikkat edin. EOL'de veya EOL'nin ötesinde karşıya yüklenen görüntüler makul bir iş çabası temelinde desteklenecektir. Redhat'ın Ürün Yaşam Döngüsü bağlantısı

Hyper-V Yöneticisi

Bu bölümde, Hyper-V Yöneticisi kullanarak RHEL 6, RHEL 7 veya RHEL 8 sanal makinesinin nasıl hazırlayabileceğiniz gösterilmektedir.

Önkoşullar

Bu bölümde, Red Hat web sitesinden zaten bir ISO dosyası edindiğiniz ve RHEL görüntüsünü bir sanal sabit diske (VHD) yüklediğiniz varsayılır. bir işletim sistemi görüntüsü yüklemek için Hyper-V Yöneticisi'ni kullanma hakkında daha fazla bilgi için bkz . Hyper-V Rolünü Yükleme ve Sanal Makine Yapılandırma.

RHEL yükleme notları

  • Azure, VHDX biçimini desteklemez. Azure desteği yalnızca sabit VHD'leridir. Diski VHD biçimine dönüştürmek için Hyper-V Yöneticisi'ni veya convert-vhd cmdlet'ini kullanabilirsiniz. VirtualBox kullanıyorsanız, diski oluştururken varsayılan dinamik olarak ayrılan seçeneğin aksine Sabit boyut'u seçin.

  • Azure desteği 1. Nesil (BIOS önyüklemesi) ve 2. Nesil (UEFI önyükleme) Sanal makineleri.

  • VHD için izin verilen boyut üst sınırı 1.023 GB'tır.

  • Vfat çekirdek modülü çekirdekte etkinleştirilmelidir.

  • Mantıksal Birim Yöneticisi (LVM) desteklenir ve Azure sanal makinelerindeki işletim sistemi diskinde veya veri disklerinde kullanılabilir. Ancak genel olarak, LVM yerine işletim sistemi diskinde standart bölümleri kullanmanızı öneririz. Bu uygulama, özellikle sorun giderme için başka bir özdeş sanal makineye bir işletim sistemi diski eklemeniz gerekirse, kopyalanan sanal makinelerle LVM adı çakışmalarını önler. LVM ve RAID belgelerine bakın.

  • Evrensel Disk Biçimi (UDF) dosya sistemlerini bağlamak için çekirdek desteği gereklidir. Azure'da ilk önyüklemede, konukta bulunan UDF biçimli medya, sağlama yapılandırmasını Linux sanal makinesine geçirir. Azure Linux Aracısı' nın yapılandırmasını okumak ve sanal makineyi sağlamak için UDF dosya sistemini bağlayabilmesi gerekir, bu olmadan sağlama başarısız olur!

  • İşletim sistemi diskinde değiştirme bölümü yapılandırmayın. 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 ayrıntıya aşağıdaki adımlardan ulaşabilirsiniz. Daha fazla bilgi için bkz . Linux Yükleme Notları .

Dekont

Cloud-init >= 21.2, udf gereksinimini kaldırır. Ancak udf modülü etkinleştirilmeden cdrom sağlama sırasında bağlanmaz ve özel verilerin uygulanmasını engeller. Bunun için geçici bir çözüm, kullanıcı verilerini kullanarak özel veriler uygulamaktır. Ancak, özel verilerden farklı olarak kullanıcı verileri şifrelenmez. https://cloudinit.readthedocs.io/en/latest/topics/format.html

Hyper-V Yöneticisi'nin kullanıldığı RHEL 6

Önemli

30 Kasım 2020'den itibaren Red Hat Enterprise Linux 6 bakım aşaması sona erecek. Bakım aşamasının ardından Uzatılmış Kullanım Ömrü Aşaması devam eder. Red Hat Enterprise Linux 6 Tam/Bakım Aşamalarından geçerken Red Hat Enterprise Linux 7, 8 veya 9 sürümüne yükseltmenizi kesinlikle öneririz. Müşterilerin Red Hat Enterprise Linux 6'da kalması gerekiyorsa Red Hat Enterprise Linux Genişletilmiş Yaşam Döngüsü Desteği (ELS) Eklentisi'ni eklemenizi öneririz.

  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. RHEL 6'da NetworkManager, Azure Linux aracısını etkileyebilir. Aşağıdaki komutu çalıştırarak bu paketi kaldırın:

    sudo rpm -e --nodeps NetworkManager
    
  4. Dosyayı oluşturun veya düzenleyin /etc/sysconfig/network ve aşağıdaki metni ekleyin:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Dosyayı oluşturun veya düzenleyin /etc/sysconfig/network-scripts/ifcfg-eth0 ve aşağıdaki metni ekleyin:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. Ethernet arabirimi için statik kurallar oluşturmaktan kaçınmak için udev kurallarını taşıyın (veya kaldırın). Bu kurallar, Microsoft Azure veya Hyper-V'de bir sanal makineyi kopyaladığınızda sorunlara neden olur:

    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
    

Dekont

** Hızlandırılmış Ağ (AN) kullanırken, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmemek üzere yapılandırılmam gerekir. Bu, NetworkManager'ın birincil arabirimle aynı IP'yi atamasını engeller.

Uygulamak için:

sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
# Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
# This interface is transparentlybonded to the synthetic interface,
# so NetworkManager should just ignore any SRIOV interfaces.
SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION=="add", ENV{NM_UNMANAGED}="1"
EOF
  1. Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:

    sudo chkconfig network on
    
  2. Aşağıdaki komutu çalıştırarak RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  3. WALinuxAgent paketi, WALinuxAgent-<version>Red Hat extras deposuna gönderildi. Aşağıdaki komutu çalıştırarak extras deposunu etkinleştirin:

    sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  4. Grub yapılandırmanızdaki çekirdek önyükleme satırını Azure için ek çekirdek parametreleri içerecek şekilde değiştirin. Bu değişikliği yapmak için bir metin düzenleyicisinde açın /boot/grub/menu.lst ve varsayılan çekirdeğin aşağıdaki parametreleri içerdiğinden emin olun:

    console=ttyS0 earlyprintk=ttyS0
    

    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, aşağıdaki parametreleri kaldırmanızı öneririz:

    rhgb quiet crashkernel=auto
    

    Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz crashkernel . Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını unutmayın. Bu yapılandırma daha küçük sanal makine boyutlarında sorunlu olabilir.

  5. Güvenli kabuk (SSH) sunucusunun yüklü olduğundan ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun. Bu genellikle varsayılandır. /etc/ssh/sshd_config aşağıdaki satırı içerecek şekilde değiştirin:

    ClientAliveInterval 180
    
  6. Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı yükleyin:

    sudo yum install WALinuxAgent
    sudo chkconfig waagent on
    

    WALinuxAgent paketinin yüklenmesi, 3. adımda henüz kaldırılmamışsa NetworkManager ve NetworkManager-gnome paketlerini kaldırır.

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

    Azure Linux Aracısı, sanal makine Azure'da sağlandıktan sonra sanal makineye bağlı yerel kaynak diskini kullanarak değiştirme alanını otomatik olarak yapılandırabilir. Yerel kaynak diskinin geçici bir disk olduğunu ve sanal makinenin sağlamasını kaldırılmışsa boşaltılabileceğini unutmayın. Önceki adımda Azure Linux Aracısı'nı yükledikten sonra /etc/waagent.conf dosyasında aşağıdaki parametreleri uygun şekilde değiştirin:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    ## NOTE: set this to whatever you need it to be.
    
  8. Aşağıdaki komutu çalıştırarak aboneliğin kaydını kaldırın (gerekirse):

    sudo subscription-manager unregister
    
  9. 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

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.

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

Hyper-V Yöneticisi'nin kullanıldığı RHEL 7

  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. Dosyayı oluşturun veya düzenleyin /etc/sysconfig/network ve aşağıdaki metni ekleyin:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. Dosyayı oluşturun veya düzenleyin /etc/sysconfig/network-scripts/ifcfg-eth0 ve aşağıdaki metni ekleyin:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    PERSISTENT_DHCLIENT=yes
    NM_CONTROLLED=yes
    
  5. Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:

    sudo systemctl enable network
    
  6. Aşağıdaki komutu çalıştırarak RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  7. Grub yapılandırmanızdaki çekirdek önyükleme satırını Azure için ek çekirdek parametreleri içerecek şekilde değiştirin. Bu değişikliği yapmak için bir metin düzenleyicisinde açın /etc/default/grub ve parametresini GRUB_CMDLINE_LINUX düzenleyin. Örneğin:

    GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 earlyprintk=ttyS0 net.ifnames=0"
    GRUB_TERMINAL_OUTPUT="serial console"
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
    

    Bu ayrıca 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ı olabilecek seri konsolla etkileşimi etkinleştirir. Bu yapılandırma, NIC'ler için yeni RHEL 7 adlandırma kurallarını da kapatır.

    rhgb quiet crashkernel=auto
    

    Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz crashkernel . Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.

  8. düzenlemeyi /etc/default/grubtamamladı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
    

    Dekont

    UEFI özellikli bir VM'yi karşıya yüklüyorsanız grub'u güncelleştirme komutu şeklindedir grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg.

  9. SSH sunucusunun yüklü olduğundan ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun; bu genellikle varsayılandır. Aşağıdaki satırı içerecek şekilde değiştirin /etc/ssh/sshd_config :

    ClientAliveInterval 180
    
  10. WALinuxAgent paketi, WALinuxAgent-<version>Red Hat extras deposuna gönderildi. Aşağıdaki komutu çalıştırarak extras deposunu etkinleştirin:

    sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  11. Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı, cloud-init'i ve diğer gerekli yardımcı programları yükleyin:

    sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons
    sudo systemctl enable waagent.service
    sudo systemctl enable cloud-init.service
    
  12. Sağlamayı işlemek için cloud-init'i yapılandırın:

    1. cloud-init için waagent yapılandırma:
    sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=auto/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
    

    Dekont

    Belirli bir sanal makineyi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız yapılandırmada /etc/waagent.conf ayarlayınProvisioning.Agent=disabled.

    1. Bağlamaları yapılandırma:
    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
    
    1. Azure veri kaynağını yapılandırma:
    sudo 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
    
    1. Yapılandırıldıysa, var olan swapfile dosyasını kaldırın:
    if [[ -f /mnt/resource/swapfile ]]; then
    echo "Removing swapfile" #RHEL uses a swapfile by default
    swapoff /mnt/resource/swapfile
    rm /mnt/resource/swapfile -f
    fi
    
    1. Cloud-init günlüğünü yapılandırma:
    sudo echo "Add console log file"
    sudo 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
    
    
  13. 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ı otomatik olarak yapılandırmak için 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:

    ResourceDisk.Format=n
    ResourceDisk.EnableSwap=n
    

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

    • Customdata aracılığıyla her VM oluşturduğunuzda bunu cloud-init yapılandırması olarak geçirin. Önerilen yöntem budur.

    • Vm her oluşturulduğunda bunu yapacak görüntüde pişirilen bir cloud-init yönergesi kullanın.

      sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
      sudo 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
      
  14. Aboneliğin kaydını silmek istiyorsanız aşağıdaki komutu çalıştırın:

    sudo subscription-manager unregister
    
  15. Sağlamayı kaldır

    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:

    Dikkat

    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. komutu waagent -force -deprovision+user çalıştırılırsa kaynak makine kullanılamaz duruma gelir, bu adım yalnızca genelleştirilmiş bir görüntü oluşturmak için tasarlanmıştır.

    sudo rm -f /var/log/waagent.log
    sudo cloud-init clean
    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    
  16. Hyper-V Yöneticisi'nde Eylem>Kapat'a tıklayın. Linux VHD'niz artık Azure'a yüklenmeye hazırdır.

Hyper-V Yöneticisi'nin kullanıldığı RHEL 8

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

    sudo systemctl enable NetworkManager.service
    
  4. Ağ arabirimini önyüklemede otomatik olarak başlatacak ve DHCP kullanacak şekilde yapılandırın:

    sudo nmcli con mod eth0 connection.autoconnect yes ipv4.method auto
    
  5. Aşağıdaki komutu çalıştırarak RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  6. Grub yapılandırmanızdaki çekirdek önyükleme satırını Azure için ek çekirdek parametreleri içerecek şekilde değiştirin ve seri konsolunu etkinleştirin.

    1. Geçerli GRUB parametrelerini kaldırın:
    sudo grub2-editenv - unset kernelopts
    
    1. Metin düzenleyicisinde düzenleyin /etc/default/grub ve aşağıdaki parametreleri ekleyin:
    GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 earlyprintk=ttyS0 net.ifnames=0"
    GRUB_TERMINAL_OUTPUT="serial console"
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
    

    Bu ayrıca 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ı olabilecek seri konsolla etkileşimi etkinleştirir. Bu yapılandırma, NIC'ler için yeni adlandırma kurallarını da kapatır.

    1. Ayrıca, aşağıdaki parametreleri kaldırmanızı öneririz:
    rhgb quiet crashkernel=auto
    

    Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz crashkernel . Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.

  7. düzenlemeyi /etc/default/grubtamamladı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
    

    UEFI özellikli bir VM için aşağıdaki komutu çalıştırın:

    sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
    
  8. SSH sunucusunun yüklü olduğundan ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun; bu genellikle varsayılandır. Aşağıdaki satırı içerecek şekilde değiştirin /etc/ssh/sshd_config :

    ClientAliveInterval 180
    
  9. Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı, cloud-init'i ve diğer gerekli yardımcı programları yükleyin:

    sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons
    sudo systemctl enable waagent.service
    sudo systemctl enable cloud-init.service
    
  10. Sağlamayı işlemek için cloud-init'i yapılandırın:

    1. cloud-init için waagent yapılandırma:
    sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/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
    

    Dekont

    Belirli bir sanal makineyi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız yapılandırmada /etc/waagent.conf ayarlayınProvisioning.Agent=disabled.

    1. Bağlamaları yapılandırma:
    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
    
    1. Azure veri kaynağını yapılandırma:
    sudo 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
    
    1. Yapılandırıldıysa, var olan swapfile dosyasını kaldırın:
    if [[ -f /mnt/resource/swapfile ]]; then
    echo "Removing swapfile" #RHEL uses a swapfile by defaul
    swapoff /mnt/resource/swapfile
    rm /mnt/resource/swapfile -f
    fi
    
    1. Cloud-init günlüğünü yapılandırma:
    sudo echo "Add console log file"
    sudo 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
    
  11. Değiştirme yapılandırması İşletim sistemi diskinde takas 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ı otomatik olarak yapılandırmak için 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:

    ResourceDisk.Format=n
    ResourceDisk.EnableSwap=n
    
    • Customdata aracılığıyla her VM oluşturduğunuzda bunu cloud-init yapılandırması olarak geçirin. Önerilen yöntem budur.

    • Vm her oluşturulduğunda bunu yapacak görüntüde pişirilen bir cloud-init yönergesi kullanın.

      sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
      sudo 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.device-timeout=2,x-systemd.requires=cloud-init.service", "0", "0"]
      EOF
      
  12. Aboneliğin kaydını silmek istiyorsanız aşağıdaki komutu çalıştırın:

    sudo subscription-manager unregister
    
  13. Sağlamayı kaldır

    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 waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    sudo sudo rm -f /var/log/waagent.log
    sudo export HISTSIZE=0
    

    Dikkat

    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. komutu waagent -force -deprovision+user çalıştırılırsa kaynak makine kullanılamaz duruma gelir, bu adım yalnızca genelleştirilmiş bir görüntü oluşturmak için tasarlanmıştır.

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

KVM

Bu bölümde, Azure'a yüklemek üzere RHEL 6 veya RHEL 7 dağıtımı hazırlamak için KVM'nin nasıl kullanılacağı gösterilmektedir.

KVM kullanan RHEL 6

Önemli

30 Kasım 2020'den itibaren Red Hat Enterprise Linux 6 bakım aşaması sona erecek. Bakım aşamasının ardından Uzatılmış Kullanım Ömrü Aşaması devam eder. Red Hat Enterprise Linux 6 Tam/Bakım Aşamalarından geçerken Red Hat Enterprise Linux 7, 8 veya 9 sürümüne yükseltmenizi kesinlikle öneririz. Müşterilerin Red Hat Enterprise Linux 6'da kalması gerekiyorsa Red Hat Enterprise Linux Genişletilmiş Yaşam Döngüsü Desteği (ELS) Eklentisi'ni eklemenizi öneririz.

  1. Red Hat web sitesinden RHEL 6'nın KVM görüntüsünü indirin.

  2. Bir kök parola ayarlayın.

    Şifreli bir parola oluşturun ve komutun çıkışını kopyalayın:

    sudo openssl passwd -1 changeme
    

    Konuk balığı ile bir kök parola ayarlayın:

    sudo guestfish --rw -a <image-name>
    > <fs> run
    > <fs> list-filesystems
    > <fs> mount /dev/sda1 /
    > <fs> vi /etc/shadow
    > <fs> exit
    

    Kök kullanıcının ikinci alanını "!!" olan şifrelenmiş parola olarak değiştirin.

  3. Qcow2 görüntüsünden KVM'de bir sanal makine oluşturun. Disk türünü qcow2 olarak ayarlayın ve sanal ağ arabirimi cihaz modelini virtio olarak ayarlayın. Ardından sanal makineyi başlatın ve kök olarak oturum açın.

  4. Dosyayı oluşturun veya düzenleyin /etc/sysconfig/network ve aşağıdaki metni ekleyin:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Dosyayı oluşturun veya düzenleyin /etc/sysconfig/network-scripts/ifcfg-eth0 ve aşağıdaki metni ekleyin:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. Ethernet arabirimi için statik kurallar oluşturmaktan kaçınmak için udev kurallarını taşıyın (veya kaldırın). Bu kurallar, Azure veya Hyper-V'de bir sanal makineyi kopyaladığınızda sorunlara neden olur:

    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
    

Dekont

** Hızlandırılmış Ağ (AN) kullanırken, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmemek üzere yapılandırılmam gerekir. Bu, NetworkManager'ın birincil arabirimle aynı IP'yi atamasını engeller.

Uygulamak için:

sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
# Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
# This interface is transparently bonded to the synthetic interface,
# so NetworkManager should just ignore any SRIOV interfaces.
SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION=="add", ENV{NM_UNMANAGED}="1"
EOF
  1. Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:

    sudo chkconfig network on
    
  2. Aşağıdaki komutu çalıştırarak RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  3. Grub yapılandırmanızdaki çekirdek önyükleme satırını Azure için ek çekirdek parametreleri içerecek şekilde değiştirin. Bu yapılandırmayı yapmak için bir metin düzenleyicisinde açın /boot/grub/menu.lst ve varsayılan çekirdeğin aşağıdaki parametreleri içerdiğinden emin olun:

    console=ttyS0 earlyprintk=ttyS0
    

    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, aşağıdaki parametreleri kaldırmanızı öneririz:

    rhgb quiet crashkernel=auto
    

    Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz crashkernel . Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.

  4. Initramfs'a Hyper-V modülleri ekleyin:

    öğesini düzenleyin /etc/dracut.confve aşağıdaki içeriği ekleyin:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Initramfs'ı yeniden oluşturun:

    sudo dracut -f -v
    
  5. cloud-init'i kaldırın:

    sudo yum remove cloud-init
    
  6. SSH sunucusunun yüklendiğinden ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun:

    sudo chkconfig sshd on
    

    /etc/ssh/sshd_config aşağıdaki satırları içerecek şekilde değiştirin:

    PasswordAuthentication yes
    ClientAliveInterval 180
    
  7. WALinuxAgent paketi, WALinuxAgent-<version>Red Hat extras deposuna gönderildi. Aşağıdaki komutu çalıştırarak extras deposunu etkinleştirin:

    sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  8. Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı yükleyin:

    sudo yum install WALinuxAgent
    sudo chkconfig waagent on
    
  9. Azure Linux Aracısı, sanal makine Azure'da sağlandıktan sonra sanal makineye bağlı yerel kaynak diskini kullanarak değiştirme alanını otomatik olarak yapılandırabilir. Yerel kaynak diskinin geçici bir disk olduğunu ve sanal makinenin sağlamasını kaldırılmışsa boşaltılabileceğini unutmayın. Önceki adımda Azure Linux Aracısı'nı yükledikten sonra /etc/waagent.conf dosyasında aşağıdaki parametreleri uygun şekilde değiştirin:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    ## NOTE: set this to whatever you need it to be.
    
  10. Aşağıdaki komutu çalıştırarak aboneliğin kaydını kaldırın (gerekirse):

    sudo subscription-manager unregister
    
  11. 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

    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

    sudo rm -rf /var/lib/waagent/
    sudo rm -f /var/log/waagent.log
    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    
  12. KVM'de sanal makineyi kapatın.

  13. qcow2 görüntüsünü VHD biçimine dönüştürün.

    Dekont

    qemu-img =2.2.1 sürümlerinde >hatalı biçimlendirilmiş bir VHD'ye neden olan bilinen bir hata vardır. Sorun QEMU 2.6'da düzeltilmiştir. qemu-img 2.2.0 veya üzerini kullanmanız ya da 2.6 veya üzeri bir sürüme güncelleştirmeniz önerilir. Başvuru: https://bugs.launchpad.net/qemu/+bug/1490611.

    Önce resmi ham biçime dönüştürün:

    sudo qemu-img convert -f qcow2 -O raw rhel-6.9.qcow2 rhel-6.9.raw
    

    Ham görüntünün boyutunun 1 MB ile hizalandığından emin olun. Aksi takdirde, boyutu 1 MB ile hizalamak için yukarı yuvarlayın:

    MB=$((1024*1024))
    size=$(qemu-img info -f raw --output json "rhel-6.9.raw" | \
    gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1)*$MB))
    sudo qemu-img resize rhel-6.9.raw $rounded_size
    

    Ham diski sabit boyutlu bir VHD'ye dönüştürün:

    sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
    

    Veya qemu sürüm 2.6+ ile şu seçeneği de dahil edin force_size :

    sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
    

KVM kullanan RHEL 7

  1. Red Hat web sitesinden RHEL 7'nin KVM görüntüsünü indirin. Bu yordamda örnek olarak RHEL 7 kullanılır.

  2. Bir kök parola ayarlayın.

    Şifreli bir parola oluşturun ve komutun çıkışını kopyalayın:

    sudo openssl passwd -1 changeme
    

    Konuk balığı ile bir kök parola ayarlayın:

    sudo  guestfish --rw -a <image-name>
    > <fs> run
    > <fs> list-filesystems
    > <fs> mount /dev/sda1 /
    > <fs> vi /etc/shadow
    > <fs> exit
    

    Kök kullanıcının ikinci alanını "!!" olan şifrelenmiş parola olarak değiştirin.

  3. Qcow2 görüntüsünden KVM'de bir sanal makine oluşturun. Disk türünü qcow2 olarak ayarlayın ve sanal ağ arabirimi cihaz modelini virtio olarak ayarlayın. Ardından sanal makineyi başlatın ve kök olarak oturum açın.

  4. Dosyayı oluşturun veya düzenleyin /etc/sysconfig/network ve aşağıdaki metni ekleyin:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Dosyayı oluşturun veya düzenleyin /etc/sysconfig/network-scripts/ifcfg-eth0 ve aşağıdaki metni ekleyin:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    PERSISTENT_DHCLIENT=yes
    NM_CONTROLLED=yes
    
  6. Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:

    sudo systemctl enable network
    
  7. Aşağıdaki komutu çalıştırarak RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  8. Grub yapılandırmanızdaki çekirdek önyükleme satırını Azure için ek çekirdek parametreleri içerecek şekilde değiştirin. Bu yapılandırmayı yapmak için bir metin düzenleyicisinde açın /etc/default/grub ve parametresini GRUB_CMDLINE_LINUX düzenleyin. Örneğin:

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

    Bu komut ayrıca tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesini sağlar ve bu da hata ayıklama sorunlarıyla ilgili Azure desteği yardımcı olabilir. Komut, NIC'ler için yeni RHEL 7 adlandırma kurallarını da kapatır. Ayrıca, aşağıdaki parametreleri kaldırmanızı öneririz:

    rhgb quiet crashkernel=auto
    

    Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz crashkernel . Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.

  9. düzenlemeyi /etc/default/grubtamamladı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
    
  10. Hyper-V modüllerini initramfs içine ekleyin.

    İçerik düzenleme /etc/dracut.conf ve ekleme:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Initramfs'ı yeniden oluşturun:

    sudo dracut -f -v
    
  11. cloud-init'i kaldırın:

    sudo yum remove cloud-init
    
  12. SSH sunucusunun yüklendiğinden ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun:

    sudo systemctl enable sshd
    

    /etc/ssh/sshd_config aşağıdaki satırları içerecek şekilde değiştirin:

    PasswordAuthentication yes
    ClientAliveInterval 180
    
  13. WALinuxAgent paketi, WALinuxAgent-<version>Red Hat extras deposuna gönderildi. Aşağıdaki komutu çalıştırarak extras deposunu etkinleştirin:

    sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  14. Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı yükleyin:

    sudo yum install WALinuxAgent
    

    Waagent hizmetini etkinleştirin:

    sudo systemctl enable waagent.service
    
  15. cloud-init'i yükleme 12. adım olan 'Sağlamayı işlemek için cloud-init'i yükleme' adlı 'Hyper-V Yöneticisi'nden RHEL 7 sanal makinesi hazırlama' makalesindeki adımları izleyin.

  16. Değiştirme yapılandırması

    İşletim sistemi diskinde değiştirme alanı oluşturmayın. 'Hyper-V Yöneticisi'nden RHEL 7 sanal makinesi hazırlama' adım 13, 'Yapılandırmayı değiştirme' adımlarındaki adımları izleyin

  17. Aşağıdaki komutu çalıştırarak aboneliğin kaydını kaldırın (gerekirse):

    sudo subscription-manager unregister
    
  18. Sağlamayı kaldır

    'Hyper-V Yöneticisi'nden RHEL 7 sanal makinesi hazırlama' adım 15, 'Sağlamayı kaldırma' adımlarındaki adımları izleyin

  19. KVM'de sanal makineyi kapatın.

  20. qcow2 görüntüsünü VHD biçimine dönüştürün.

    Dekont

    qemu-img =2.2.1 sürümlerinde >hatalı biçimlendirilmiş bir VHD'ye neden olan bilinen bir hata vardır. Sorun QEMU 2.6'da düzeltilmiştir. qemu-img 2.2.0 veya üzerini kullanmanız ya da 2.6 veya üzeri bir sürüme güncelleştirmeniz önerilir. Başvuru: https://bugs.launchpad.net/qemu/+bug/1490611.

    Önce resmi ham biçime dönüştürün:

    sudo qemu-img convert -f qcow2 -O raw rhel-7.4.qcow2 rhel-7.4.raw
    

    Ham görüntünün boyutunun 1 MB ile hizalandığından emin olun. Aksi takdirde, boyutu 1 MB ile hizalamak için yukarı yuvarlayın:

    MB=$((1024*1024))
    size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \
    gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1)*$MB))
    sudo qemu-img resize rhel-7.4.raw $rounded_size
    

    Ham diski sabit boyutlu bir VHD'ye dönüştürün:

    sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
    

    Veya qemu sürüm 2.6+ ile şu seçeneği de dahil edin force_size :

    sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
    

VMware

Bu bölümde, VMware'den RHEL 6 veya RHEL 7 dağıtımını nasıl hazırlayacağınız gösterilmektedir.

Önkoşullar

Bu bölümde, VMware'de zaten bir RHEL sanal makinesi yüklediğiniz varsayılır. VMware'de işletim sistemi yükleme hakkında ayrıntılı bilgi için bkz . VMware Konuk İşletim Sistemi Yükleme Kılavuzu.

  • Linux işletim sistemini yüklediğinizde, çoğu yükleme için genellikle varsayılan olan LVM yerine standart bölümler kullanmanızı öneririz. Bu, özellikle de sorun giderme için başka bir sanal makineye bir işletim sistemi diski eklenmesi gerekiyorsa, kopyalanan sanal makineyle LVM adı çakışmalarını önler. LVM veya RAID tercih edilirse veri disklerinde kullanılabilir.
  • İşletim sistemi diskinde değiştirme bölümü yapılandırmayın. Linux aracısını geçici kaynak diskinde bir takas dosyası oluşturacak şekilde yapılandırabilirsiniz. Aşağıdaki adımlarda bu konuda daha fazla bilgi bulabilirsiniz.
  • Sanal sabit diski oluşturduğunuzda Sanal diski tek bir dosya olarak depola'yı seçin.

VMware kullanan RHEL 6

Önemli

30 Kasım 2020'den itibaren Red Hat Enterprise Linux 6 bakım aşaması sona erecek. Bakım aşamasının ardından Uzatılmış Kullanım Ömrü Aşaması devam eder. Red Hat Enterprise Linux 6, Tam/Bakım Aşamalarından geçerken Red Hat Enterprise Linux 7 veya 8 veya 9 sürümüne yükseltilmesi kesinlikle önerilir. Müşterilerin Red Hat Enterprise Linux 6'da kalması gerekiyorsa Red Hat Enterprise Linux Genişletilmiş Yaşam Döngüsü Desteği (ELS) Eklentisinin eklenmesi önerilir.

  1. RHEL 6'da NetworkManager, Azure Linux aracısını etkileyebilir. Aşağıdaki komutu çalıştırarak bu paketi kaldırın:

    sudo rpm -e --nodeps NetworkManager
    
  2. /etc/sysconfig/ dizininde aşağıdaki metni içeren network adlı bir dosya oluşturun:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  3. Dosyayı oluşturun veya düzenleyin /etc/sysconfig/network-scripts/ifcfg-eth0 ve aşağıdaki metni ekleyin:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  4. Ethernet arabirimi için statik kurallar oluşturmaktan kaçınmak için udev kurallarını taşıyın (veya kaldırın). Bu kurallar, Azure veya Hyper-V'de bir sanal makineyi kopyaladığınızda sorunlara neden olur:

    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
    

Dekont

** Hızlandırılmış Ağ (AN) kullanırken, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmemek üzere yapılandırılmam gerekir. Bu, NetworkManager'ın birincil arabirimle aynı IP'yi atamasını engeller.

Uygulamak için:

sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
# Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
# This interface is transparently bonded to the synthetic interface,
# so NetworkManager should just ignore any SRIOV interfaces.
SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION=="add", ENV{NM_UNMANAGED}="1"
EOF
  1. Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:

    sudo chkconfig network on
    
  2. Aşağıdaki komutu çalıştırarak RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  3. WALinuxAgent paketi, WALinuxAgent-<version>Red Hat extras deposuna gönderildi. Aşağıdaki komutu çalıştırarak extras deposunu etkinleştirin:

    sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
    
  4. Grub yapılandırmanızdaki çekirdek önyükleme satırını Azure için ek çekirdek parametreleri içerecek şekilde değiştirin. Bunu yapmak için bir metin düzenleyicisinde açın /etc/default/grub ve parametresini GRUB_CMDLINE_LINUX düzenleyin. Örneğin:

    GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0"
    

    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, aşağıdaki parametreleri kaldırmanızı öneririz:

    rhgb quiet crashkernel=auto
    

    Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz crashkernel . Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.

  5. Initramfs'a Hyper-V modülleri ekleyin:

    öğesini düzenleyin /etc/dracut.confve aşağıdaki içeriği ekleyin:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Initramfs'ı yeniden oluşturun:

    sudo dracut -f -v
    
  6. SSH sunucusunun yüklü olduğundan ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun; bu genellikle varsayılandır. Aşağıdaki satırı içerecek şekilde değiştirin /etc/ssh/sshd_config :

    ClientAliveInterval 180
    
  7. Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı yükleyin:

    sudo yum install WALinuxAgent
    sudo chkconfig waagent on
    
  8. İşletim sistemi diskinde değiştirme alanı oluşturmayın.

    Azure Linux Aracısı, sanal makine Azure'da sağlandıktan sonra sanal makineye bağlı yerel kaynak diskini kullanarak değiştirme alanını otomatik olarak yapılandırabilir. Yerel kaynak diskinin geçici bir disk olduğunu ve sanal makinenin sağlamasını kaldırılmışsa boşaltılabileceğini unutmayın. Önceki adımda Azure Linux Aracısı'nı yükledikten sonra aşağıdaki parametreleri /etc/waagent.conf uygun şekilde değiştirin:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    ## NOTE: set this to whatever you need it to be.
    
  9. Aşağıdaki komutu çalıştırarak aboneliğin kaydını kaldırın (gerekirse):

    sudo subscription-manager unregister
    
  10. 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

    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.

    sudo rm -rf /var/lib/waagent/
    sudo rm -f /var/log/waagent.log
    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    
  11. Sanal makineyi kapatın ve VMDK dosyasını bir .vhd dosyasına dönüştürün.

    Dekont

    qemu-img =2.2.1 sürümlerinde >hatalı biçimlendirilmiş bir VHD'ye neden olan bilinen bir hata vardır. Sorun QEMU 2.6'da düzeltilmiştir. qemu-img 2.2.0 veya üzerini kullanmanız ya da 2.6 veya üzeri bir sürüme güncelleştirmeniz önerilir. Başvuru: https://bugs.launchpad.net/qemu/+bug/1490611.

    Önce resmi ham biçime dönüştürün:

    sudo qemu-img convert -f vmdk -O raw rhel-6.9.vmdk rhel-6.9.raw
    

    Ham görüntünün boyutunun 1 MB ile hizalandığından emin olun. Aksi takdirde, boyutu 1 MB ile hizalamak için yukarı yuvarlayın:

    MB=$((1024*1024))
    size=$(qemu-img info -f raw --output json "rhel-6.9.raw" | \
    gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1)*$MB))
    sudo qemu-img resize rhel-6.9.raw $rounded_size
    

    Ham diski sabit boyutlu bir VHD'ye dönüştürün:

    sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
    

    Veya qemu sürüm 2.6+ ile şu seçeneği de dahil edin force_size :

    sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
    

VMware kullanan RHEL 7

  1. Dosyayı oluşturun veya düzenleyin /etc/sysconfig/network ve aşağıdaki metni ekleyin:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  2. Dosyayı oluşturun veya düzenleyin /etc/sysconfig/network-scripts/ifcfg-eth0 ve aşağıdaki metni ekleyin:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    PERSISTENT_DHCLIENT=yes
    NM_CONTROLLED=yes
    
  3. Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:

    sudo systemctl enable network
    
  4. Aşağıdaki komutu çalıştırarak RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  5. Grub yapılandırmanızdaki çekirdek önyükleme satırını Azure için ek çekirdek parametreleri içerecek şekilde değiştirin. Bu değişikliği yapmak için bir metin düzenleyicisinde açın /etc/default/grub ve parametresini GRUB_CMDLINE_LINUX düzenleyin. Örneğin:

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

    Bu yapılandırma ayrıca tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesini sağlar ve bu da hata ayıklama sorunlarıyla ilgili Azure desteği yardımcı olabilir. NIC'ler için yeni RHEL 7 adlandırma kurallarını da kapatır. Ayrıca, aşağıdaki parametreleri kaldırmanızı öneririz:

    rhgb quiet crashkernel=auto
    

    Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz crashkernel . Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.

  6. düzenlemeyi /etc/default/grubtamamladı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
    
  7. Initramfs'a Hyper-V modülleri ekleyin.

    düzenleyin /etc/dracut.conf, içerik ekleyin:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    Initramfs'ı yeniden oluşturun:

    sudo dracut -f -v
    
  8. 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. Aşağıdaki satırı içerecek şekilde değiştirin /etc/ssh/sshd_config :

    ClientAliveInterval 180
    
  9. WALinuxAgent paketi, WALinuxAgent-<version>Red Hat extras deposuna gönderildi. Aşağıdaki komutu çalıştırarak extras deposunu etkinleştirin:

    sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  10. Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı yükleyin:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent.service
    
  11. cloud-init yükleme

    'Hyper-V Yöneticisi'nden RHEL 7 sanal makinesi hazırlama', 12. adım olan 'Sağlamayı işlemek için cloud-init'i yükleme' adımlarındaki adımları izleyin.

  12. Değiştirme yapılandırması

    İşletim sistemi diskinde değiştirme alanı oluşturmayın. 'Hyper-V Yöneticisi'nden RHEL 7 sanal makinesi hazırlama' adım 13, 'Yapılandırmayı değiştirme' adımlarındaki adımları izleyin

  13. Aboneliğin kaydını silmek istiyorsanız aşağıdaki komutu çalıştırın:

    sudo subscription-manager unregister
    
  14. Sağlamayı kaldır

    'Hyper-V Yöneticisi'nden RHEL 7 sanal makinesi hazırlama' adım 15, 'Sağlamayı kaldırma' adımlarındaki adımları izleyin

  15. Sanal makineyi kapatın ve VMDK dosyasını VHD biçimine dönüştürün.

    Dekont

    qemu-img =2.2.1 sürümlerinde >hatalı biçimlendirilmiş bir VHD'ye neden olan bilinen bir hata vardır. Sorun QEMU 2.6'da düzeltilmiştir. qemu-img 2.2.0 veya üzerini kullanmanız ya da 2.6 veya üzeri bir sürüme güncelleştirmeniz önerilir. Başvuru: https://bugs.launchpad.net/qemu/+bug/1490611.

    Önce resmi ham biçime dönüştürün:

    sudo qemu-img convert -f vmdk -O raw rhel-7.4.vmdk rhel-7.4.raw
    

    Ham görüntünün boyutunun 1 MB ile hizalandığından emin olun. Aksi takdirde, boyutu 1 MB ile hizalamak için yukarı yuvarlayın:

    MB=$((1024*1024))
    size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \
    gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1)*$MB))
    sudo qemu-img resize rhel-7.4.raw $rounded_size
    

    Ham diski sabit boyutlu bir VHD'ye dönüştürün:

    sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
    

    Veya qemu sürüm 2.6+ ile şu seçeneği de dahil edin force_size :

    sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
    

Kickstart dosyası

Bu bölümde, başlangıç dosyası kullanarak ISO'dan RHEL 7 dağıtımının nasıl hazırlayabileceğiniz gösterilmektedir.

Başlangıç dosyasından RHEL 7

  1. Aşağıdaki içeriği içeren bir başlangıç dosyası oluşturun ve dosyayı kaydedin. Başlangıç yükleme hakkında ayrıntılı bilgi için bkz . Kickstart Yükleme Kılavuzu.

    # Kickstart for provisioning a RHEL 7 Azure VM
    
    # System authorization information
      auth --enableshadow --passalgo=sha512
    
    # Use graphical install
    text
    
    # Don't run the Setup Agent on first boot
    firstboot --disable
    
    # Keyboard layouts
    keyboard --vckeymap=us --xlayouts='us'
    
    # System language
    lang en_US.UTF-8
    
    # Network information
    network  --bootproto=dhcp
    
    # Root password
    rootpw --plaintext "to_be_disabled"
    
    # System services
    services --enabled="sshd,waagent,NetworkManager"
    
    # System timezone
    timezone Etc/UTC --isUtc --ntpservers 0.rhel.pool.ntp.org,1.rhel.pool.ntp.org,2.rhel.pool.ntp.org,3.rhel.pool.ntp.org
    
    # Partition clearing information
    clearpart --all --initlabel
    
    # Clear the MBR
    zerombr
    
    # Disk partitioning information
    part /boot --fstype="xfs" --size=500
    part / --fstyp="xfs" --size=1 --grow --asprimary
    
    # System bootloader configuration
    bootloader --location=mbr
    
    # Firewall configuration
    firewall --disabled
    
    # Enable SELinux
    selinux --enforcing
    
    # Don't configure X
    skipx
    
    # Power down the machine after install
    poweroff
    
    %packages
    @base
    @console-internet
    chrony
    sudo
    parted
    -dracut-config-rescue
    
    %end
    
    %post --log=/var/log/anaconda/post-install.log
    
    #!/bin/bash
    
    # Register Red Hat Subscription
    subscription-manager register --username=XXX --password=XXX --auto-attach --force
    
    # Install latest repo update
    yum update -y
    
    # Enable extras repo
    subscription-manager repos --enable=rhel-7-server-extras-rpms
    
    # Install WALinuxAgent
    yum install -y WALinuxAgent
    
    # Unregister Red Hat subscription
    subscription-manager unregister
    
    # Enable waaagent at boot-up
    systemctl enable waagent
    
    # Install cloud-init
    yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
    # Configure waagent for cloud-init
    sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/g' /etc/waagent.conf
    sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf
    sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
    
    echo "Adding mounts and disk_setup to init stage"
    sed -i '/ - mounts/d' /etc/cloud/cloud.cfg
    sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg
    sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg
    sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg
    
    # Disable the root account
    usermod root -p '!!'
    
    # Configure swap using cloud-init
    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"]
    - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.device-timeout=2,x-systemd.requires=cloud-init.service", "0", "0"]
    EOF
    
    # Set the cmdline
    sed -i 's/^\(GRUB_CMDLINE_LINUX\)=".*"$/\1="console=tty1 console=ttyS0 earlyprintk=ttyS0"/g' /etc/default/grub
    
    # Enable SSH keepalive
    sed -i 's/^#\(ClientAliveInterval\).*$/\1 180/g' /etc/ssh/sshd_config
    
    # Build the grub cfg
    grub2-mkconfig -o /boot/grub2/grub.cfg
    
    # Configure network
    cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    PERSISTENT_DHCLIENT=yes
    NM_CONTROLLED=yes
    EOF
    
    # Deprovision and prepare for Azure if you are creating a generalized image
    sudo cloud-init clean --logs --seed
    sudo rm -rf /var/lib/cloud/
    sudo rm -rf /var/lib/waagent/
    sudo rm -f /var/log/waagent.log
    
    sudo waagent -force -deprovision+user
    rm -f ~/.bash_history
    export HISTSIZE=0
    
    %end
    
  2. Kickstart dosyasını yükleme sisteminin erişebileceği konuma yerleştirin.

  3. Hyper-V Yöneticisi'nde yeni bir sanal makine oluşturun. Bağlan Sanal Sabit Disk sayfasında Daha sonra Sanal sabit disk ekle'yi seçin ve Yeni Sanal Makine Sihirbazı'nı tamamlayın.

  4. Sanal makine ayarlarını açın:

    1. Sanal makineye yeni bir sanal sabit disk ekleyin. VHD Biçimi ve Sabit Boyut'un seçildiğinden emin olun.

    2. Yükleme ISO'sını DVD sürücüsüne takın.

    3. BIOS'un CD'den önyüklenmesini sağlayın.

  5. Sanal makineyi başlatın. Yükleme kılavuzu görüntülendiğinde, önyükleme seçeneklerini yapılandırmak için Sekme tuşuna basın.

  6. Önyükleme seçeneklerinin sonuna girin inst.ks=<the location of the kickstart file> ve Enter tuşuna basın.

  7. Yüklemenin bitmesini bekleyin. tamamlandığında sanal makine otomatik olarak kapatılır. Linux VHD'niz artık Azure'a yüklenmeye hazırdır.

Bilinen sorunlar

Hyper-V olmayan bir hiper yönetici kullanılırken Hyper-V sürücüsü ilk RAM diske eklenemedi

Bazı durumlarda Linux yükleyicileri, Linux bir Hyper-V ortamında çalıştığını algılamadığı sürece ilk RAM diskinde (initrd veya initramfs) Hyper-V sürücülerini içermeyebilir.

Linux görüntünüzü hazırlamak için farklı bir sanallaştırma sistemi (VirtualBox, Xen vb.) kullanırken, ilk RAM diskinde en az hv_vmbus ve hv_storvsc çekirdek modüllerinin kullanılabilir olduğundan emin olmak için initrd'yi yeniden oluşturmanız gerekebilir. Bu, en azından yukarı akış Red Hat dağılımını temel alan sistemlerde bilinen bir sorundur.

Bu sorunu çözmek için initramfs'a Hyper-V modülleri ekleyin ve yeniden derleyin:

öğesini düzenleyin /etc/dracut.confve aşağıdaki içeriği ekleyin:

add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "

Initramfs'ı yeniden oluşturun:

sudo dracut -f -v

Daha fazla ayrıntı için initramfs'ı yeniden oluşturma hakkındaki bilgilere bakın.

Sonraki adımlar

  • Artık Azure'da yeni sanal makineler oluşturmak için Red Hat Enterprise 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.
  • Red Hat Enterprise Linux çalıştırma sertifikasına sahip hiper yöneticiler hakkında daha fazla bilgi için Red Hat web sitesine bakın.
  • Üretime hazır RHEL BYOS görüntülerini kullanma hakkında daha fazla bilgi edinmek için KCG belgeleri sayfasına gidin.