Azure için SLES veya openSUSE Leap sanal makinesi hazırlama

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

Bazı durumlarda, Azure ortamınızda özelleştirilmiş SUSE Linux Enterprise Server (SLES) veya openSUSE Leap Linux sanal makineleri (VM) kullanmak ve otomasyon aracılığıyla bu tür VM'ler oluşturmak isteyebilirsiniz. Bu makalede, SUSE Linux işletim sistemi içeren özel bir Azure sanal sabit diski (VHD) oluşturma ve karşıya yükleme işlemi gösterilmektedir.

Önkoşullar

Bu makalede, sanal sabit diske zaten bir SLES veya openSUSE Leap 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ü kullanabilirsiniz. Yönergeler için bkz . Hyper-V'yi yükleme ve sanal makine oluşturma.

SLES/openSUSE Artık yükleme notları

  • Azure için Linux görüntülerini hazırlama hakkında daha fazla ipucu için bkz . Genel Linux yükleme notları.
  • Azure, Windows Sabit Disk Görüntüsü (.vhdx) dosyalarını desteklemez. Sanal makineler dışında yalnızca VHD (.vhd) dosyaları desteklenir. Hyper-V Yöneticisi'ni veya cmdlet'ini kullanarak diski VHD biçimine Convert-VHD dönüştürebilirsiniz.
  • Azure desteği 1. Nesil (BIOS önyüklemesi) ve 2. Nesil (UEFI önyükleme) sanal makineleri.
  • Sanal dosya ayırma tablosu (VFAT) çekirdek modülü çekirdekte etkinleştirilmelidir.
  • İş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. Bu makalenin devamında yer alan adımlar, değiştirme alanını yapılandırma hakkında daha fazla bilgi sağlar.
  • 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 olun. Daha fazla bilgi için bkz . Genel Linux yükleme notları.

Not

Cloud-init sürüm 21.2 veya üzeri, kullanıcı tanımlı işlev (UDF) gereksinimini kaldırır. Ancak modül etkinleştirilmeden udf , cd-ROM sağlama sırasında bağlanmaz ve bu da özel verilerin uygulanmasını engeller. Geçici çözüm, kullanıcı verilerini uygulamaktır. Ancak, özel verilerden farklı olarak kullanıcı verileri şifrelenmez. Daha fazla bilgi için cloud-init belgelerindeki Kullanıcı veri biçimleri bölümüne bakın.

SUSE Studio kullanma

SUSE Studio , SLES'nizi kolayca oluşturup yönetebilir ve Azure ve Hyper-V için artık görüntüleri kullanabilir. SUSE Studio, kendi SLES'nizi ve openSUSE Artık görüntülerinizi özelleştirmek için önerilen yaklaşımdır.

SUSE, kendi VHD'nizi oluşturmaya alternatif olarak VM Depot'ta SLES için BYOS (kendi aboneliğinizi getirin) görüntüleri de yayımlar.

SLES'i Azure için hazırlama

  1. Gerekirse Azure ve Hyper-V modüllerini yapılandırın.

    Yazılım hiper yöneticiniz Hyper-V değilse, Azure'da başarıyla önyükleme yapmak için ilk RAM diskine (initramfs) başka modüllerin eklenmesi gerekir.

    /etc/dracut.conf dosyasını düzenleyin ve dosyaya aşağıdaki satırı ekleyin:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    dracut initramfs dosyasını yeniden derlemek için komutunu çalıştırın:

    sudo dracut --verbose --force
    
  2. Seri konsolunu ayarlayın.

    Seri konsolla başarılı bir şekilde çalışmak için /etc/defaults /grub dosyasında birkaç değişken ayarlamanız ve sunucuda GRUB'yi yeniden oluşturmanız gerekir:

    # Add console=ttyS0 and earlyprintk=ttS0 to the variable.
    # Remove "splash=silent" and "quiet" options.
    GRUB_CMDLINE_LINUX_DEFAULT="audit=1 no-scroll fbcon=scrollback:0 mitigations=auto security=apparmor crashkernel=228M,high crashkernel=72M,low console=ttyS0 earlyprintk=ttyS0"
    
    # Add "console serial" to GRUB_TERMINAL.
    GRUB_TERMINAL="console serial"
    
    # Set the GRUB_SERIAL_COMMAND variable.
    
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
    
    /usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
    
  3. Güncelleştirmeleri indirmesine ve paketleri yüklemesine izin vermek için SUSE Linux Enterprise sisteminizi kaydedin.

  4. Sistemi en son düzeltme ekleriyle güncelleştirin:

    sudo zypper update
    
  5. Azure Linux VM Aracısını (waagent) ve cloud-init'i yükleyin:

    sudo SUSEConnect -p sle-module-public-cloud/15.2/x86_64  (SLES 15 SP2)
    sudo zypper refresh
    sudo zypper install python-azure-agent
    sudo zypper install cloud-init
    
  6. Önyüklemede başlatmak için etkinleştir waagent ve cloud-init:

    sudo systemctl enable  waagent
    sudo systemctl enable cloud-init-local.service
    sudo systemctl enable cloud-init.service
    sudo systemctl enable cloud-config.service
    sudo systemctl enable cloud-final.service
    sudo systemctl daemon-reload
    sudo cloud-init clean
    
  7. cloud-init yapılandırmasını güncelleştirin:

    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg
    datasource_list: [ Azure ]
    datasource:
        Azure:
            apply_network_config: False
    
    EOF
    
    sudo cat <<EOF | sudo tee  /etc/cloud/cloud.cfg.d/05_logging.cfg
    # 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
    
    # Make sure mounts and disk_setup are in the init stage:
    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
    
  8. Değiştirme bölümünü bağlamak, biçimlendirmek ve oluşturmak istiyorsanız, bir seçenek her VM oluşturduğunuzda cloud-init yapılandırmasını geçirmektir.

    Bir diğer seçenek de görüntüde bir cloud-init yönergesi kullanarak VM her oluşturulduğunda takas alanını yapılandırmaktır:

    cat  <<EOF | sudo tee -a /etc/systemd/system.conf
    'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"'
    EOF
    
    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/00-azure-swap.cfg
    #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.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"]
    EOF
    
  9. 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. Cloud-init artık bu adımı işlediğinden kaynak diskini biçimlendirmek veya takas dosyasını oluşturmak için Azure Linux Aracısı'nı kullanmamalısınız . /etc/waagent.conf dosyasını uygun şekilde değiştirmek için şu komutları kullanın:

    sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=auto/g' /etc/waagent.conf
    sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/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
    

    Not

    21.2'den önceki bir cloud-init sürümünü kullanıyorsanız modülün etkinleştirildiğinden udf emin olun. Kaldırma veya devre dışı bırakma, sağlama veya önyükleme hatasına neden olur. Cloud-init sürüm 21.2 veya üzeri UDF gereksinimini kaldırır.

  10. /etc/fstab dosyasının UUID' sini (by-uuid kullanarak diske başvurduğunu) unutmayın.

  11. Ethernet arabirimleri için statik kurallar oluşturmaktan kaçınmak için udev kurallarını ve ağ bağdaştırıcısı yapılandırma dosyalarını kaldırın. Bu kurallar, Microsoft Azure veya Hyper-V'de bir sanal makineyi klonlarken sorunlara neden olabilir.

    sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
    sudo rm -f /etc/udev/rules.d/85-persistent-net-cloud-init.rules
    sudo rm -f /etc/sysconfig/network/ifcfg-eth*
    
  12. /etc/sysconfig/network/dhcp dosyasını düzenlemenizi ve parametresini DHCLIENT_SET_HOSTNAME aşağıdaki şekilde değiştirmenizi öneririz:

    DHCLIENT_SET_HOSTNAME="no"
    
  13. /etc/sudoers dosyasında, varsa aşağıdaki satırları açıklama satırı yapın veya kaldırın:

    Defaults targetpw   # Ask for the password of the target user i.e. root
    ALL    ALL=(ALL) ALL   # WARNING! Only use this setting together with 'Defaults targetpw'!
    
  14. Secure Shell (SSH) sunucusunun yüklendiğinden ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun:

    sudo systemctl enable sshd
    
  15. cloud-init aşamasını temizleyin:

    sudo cloud-init clean --seed --logs
    
  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.

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

OpenSUSE 15.4+ hazırlama

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

  2. Sanal makinenin penceresini açmak için Bağlan seçin.

  3. Terminalde komutunu zypper lrçalıştırın. Bu komut aşağıdaki örneğe benzer bir çıkış döndürürse, depolar beklendiği gibi yapılandırılır ve hiçbir ayarlama gerekmez. (Sürüm numaraları farklılık gösterebilir.)

    # Diğer ad Veri Akışı Adı Etkin GPG Denetimi Yenile
    1 Bulut:Tools_15.4 Bulut:Araçlar-> Yes (r ) Evet Yes
    2 openSUSE_stable_OSS openSUSE_st-> Yes (r ) Evet Yes
    3 openSUSE_stable_Güncelleştirmeler openSUSE_st-> Yes (r ) Evet Yes

    Depolardan zypper lr "Tanımlı depo yok" iletisi görünüyorsa el ile eklenmelidir.

    Aşağıda bu depoları eklemeye yönelik komut örnekleri verilmiştir (sürümler ve bağlantılar farklılık gösterebilir):

    sudo zypper ar -f https://download.opensuse.org/update/openSUSE-stable openSUSE_stable_Updates
    sudo zypper ar -f https://download.opensuse.org/repositories/Cloud:/Tools/15.4 Cloud:Tools_15.4
    sudo zypper ar -f https://download.opensuse.org/distribution/openSUSE-stable/repo/oss openSUSE_stable_OSS
    

    Ardından komutu zypper lr yeniden çalıştırarak depoların eklendiğini doğrulayabilirsiniz. İlgili güncelleştirme depolarından biri etkinleştirilmediyse, aşağıdaki komutu kullanarak etkinleştirin:

    sudo zypper mr -e [NUMBER OF REPOSITORY]
    
  4. Çekirdeği kullanılabilir en son sürüme güncelleştirin:

    sudo zypper up kernel-default
    

    Veya işletim sistemini en son düzeltme ekleriyle güncelleştirin:

    sudo zypper update
    
  5. Azure Linux Aracısı'nı yükleyin:

    sudo zypper install WALinuxAgent
    
  6. GRUB yapılandırmanızdaki çekirdek önyükleme satırını, Azure için diğer çekirdek parametrelerini içerecek şekilde değiştirin. Bunu yapmak için bir metin düzenleyicisinde /boot/grub/menu.lst dosyasını açın ve varsayılan çekirdeğin aşağıdaki parametreleri içerdiğinden emin olun:

    console=ttyS0 earlyprintk=ttyS0
    

    Bu seçenek, 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. Ayrıca, varsa çekirdek önyükleme satırından aşağıdaki parametreleri kaldırın:

     libata.atapi_enabled=0 reserve=0x1f0,0x8
    
  7. /etc/sysconfig/network/dhcp dosyasını düzenlemenizi ve parametresini DHCLIENT_SET_HOSTNAME aşağıdaki ayara değiştirmenizi öneririz:

     DHCLIENT_SET_HOSTNAME="no"
    
  8. /etc/sudoers dosyasında, varsa aşağıdaki satırları açıklama satırı yapın veya kaldırın. Bu önemli bir adımdır.

    Defaults targetpw   # ask for the password of the target user i.e. root
    ALL    ALL=(ALL) ALL   # WARNING! Only use this together with 'Defaults targetpw'!
    
  9. SSH sunucusunun yüklendiğinden ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun.

  10. İş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ılır.

    Azure Linux Aracısı'nı yükledikten sonra /etc/waagent.conf içindeki parametreleri aşağıdaki gibi değiştirin:

    ResourceDisk.Format=n
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=n
    ResourceDisk.SwapSizeMB=2048    ## NOTE: set the size to whatever you need it to be.
    
  11. Azure Linux Aracısı'nın başlangıçta çalıştığından emin olun:

    sudo systemctl enable waagent.service
    
  12. 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.

    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 -f ~/.bash_history # Remove current user history
    sudo rm -rf /var/lib/waagent/
    sudo rm -f /var/log/waagent.log
    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history # Remove root user history
    sudo export HISTSIZE=0
    
  13. Hyper-V Yöneticisi'nde Eylem>Kapat'ı seçin.

Sonraki adımlar

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