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
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
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
Güncelleştirmeleri indirmesine ve paketleri yüklemesine izin vermek için SUSE Linux Enterprise sisteminizi kaydedin.
Sistemi en son düzeltme ekleriyle güncelleştirin:
sudo zypper update
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
Ö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
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
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
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./etc/fstab dosyasının UUID' sini (
by-uuid
kullanarak diske başvurduğunu) unutmayın.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*
/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"
/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'!
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
cloud-init aşamasını temizleyin:
sudo cloud-init clean --seed --logs
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
Hyper-V Yöneticisi'nin orta bölmesinde sanal makineyi seçin.
Sanal makinenin penceresini açmak için Bağlan'ı seçin.
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_Updates 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]
Ç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
Azure Linux Aracısı'nı yükleyin:
sudo zypper install WALinuxAgent
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
/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"
/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'!
SSH sunucusunun yüklendiğinden ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun.
İş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.
Azure Linux Aracısı'nın başlangıçta çalıştığından emin olun:
sudo systemctl enable waagent.service
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
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.