إعداد SLES أو جهاز ظاهري openSUSE Leap لـ Azure
ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات مقاييس مرنة ينطبق على: ✔️ مجموعات مقياس موحدة
في بعض الحالات، قد ترغب في استخدام SUSE Linux Enterprise Server (SLES) المخصصة أو openSUSE Leap Linux virtual machines (VMs) في بيئة Azure الخاصة بك وتكون قادرا على إنشاء هذه الأنواع من الأجهزة الظاهرية من خلال التشغيل التلقائي. توضح هذه المقالة كيفية إنشاء وتحميل قرص ثابت ظاهري مخصص ل Azure (VHD) يحتوي على نظام تشغيل SUSE Linux.
المتطلبات الأساسية
تفترض هذه المقالة أنك قمت بالفعل بتثبيت نظام تشغيل SLES أو openSUSE Leap Linux على قرص ثابت ظاهري. توجد أدوات متعددة لإنشاء ملفات .vhd. على سبيل المثال، يمكنك استخدام حل ظاهري مثل Hyper-V. للحصول على الإرشادات، راجع تثبيت Hyper-V وإنشاء جهاز ظاهري.
ملاحظات تثبيت SLES/openSUSE Leap
- لمزيد من النصائح حول إعداد صور Linux ل Azure، راجع ملاحظات تثبيت Linux العامة.
- لا يدعم Azure ملفات Windows Hard Disk Image (.vhdx). يتم دعم ملفات VHD (.vhd) فقط خارج الأجهزة الظاهرية. يمكنك تحويل القرص إلى تنسيق VHD باستخدام Hyper-V Manager أو
Convert-VHD
cmdlet. - يدعم Azure الأجهزة الظاهرية Gen1 (تمهيد BIOS) وGen2 (تمهيد UEFI).
- يجب تمكين الوحدة النمطية kernel لجدول تخصيص الملفات الظاهرية (VFAT) في النواة.
- لا تقم بتكوين قسم مبادلة على قرص نظام التشغيل. يمكنك تكوين عامل Linux لإنشاء ملف مبادلة على قرص المورد المؤقت. تقدم الخطوات اللاحقة في هذه المقالة المزيد من المعلومات حول تكوين مساحة التبديل.
- يجب أن يكون لجميع أقراص VHD على Azure حجم ظاهري محاذاته إلى 1 ميغابايت. عند التحويل من قرص خام إلى VHD، تأكد من أن حجم القرص الخام هو مضاعف 1 ميغابايت قبل التحويل. لمزيد من المعلومات، راجع ملاحظات تثبيت Linux العامة.
إشعار
يزيل الإصدار 21.2 من Cloud-init أو أحدث متطلبات الدالة المعرفة من قبل المستخدم (UDF). ولكن بدون تمكين الوحدة النمطية udf
، لن يتم تحميل CD-ROM أثناء التوفير، مما يمنع تطبيق البيانات المخصصة. الحل البديل هو تطبيق بيانات المستخدم. ومع ذلك، على عكس البيانات المخصصة، لا يتم تشفير بيانات المستخدم. لمزيد من المعلومات، راجع تنسيقات بيانات المستخدم في وثائق تهيئة السحابة.
استخدام SUSE Studio
يمكن لـ SUSE Studio إنشاء SLES وإدارتها بسهولة وفتح صور SUSE Leap لـ Azure وHyper-V. SUSE Studio هو النهج الموصى به لتخصيص صور SLES الخاصة بك وopenSUSE Leap.
كبديل لبناء VHD الخاص بك، ينشر SUSE أيضا صور BYOS (إحضار اشتراكك الخاص) ل SLES في VM Depot.
إعداد SLES ل Azure
تكوين الوحدات النمطية Azure وHyper-V إذا لزم الأمر.
إذا لم يكن برنامج hypervisor Hyper-V، فيجب إضافة وحدات نمطية أخرى إلى قرص ذاكرة الوصول العشوائي الأولي (initramfs) للتمهيد بنجاح في Azure.
قم بتحرير الملف /etc/dracut.conf وأضف السطر التالي إلى الملف:
add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
dracut
قم بتشغيل الأمر لإعادة إنشاء ملف initramfs:sudo dracut --verbose --force
إعداد وحدة التحكم التسلسلية.
للعمل بنجاح مع وحدة التحكم التسلسلية، يجب إعداد عدة متغيرات في ملف /etc/defaults/grub وإعادة إنشاء GRUB على الخادم:
# 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
قم بتسجيل نظام SUSE Linux Enterprise للسماح له بتنزيل التحديثات وتثبيت الحزم.
تحديث النظام بأحدث التصحيحات:
sudo zypper update
تثبيت عامل Azure Linux VM (
waagent
) و cloud-init: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
تمكين
waagent
و 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
تحديث تكوين تهيئة السحابة:
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
إذا كنت ترغب في تحميل قسم تبديل وتنسيقه وإنشائه، فإن أحد الخيارات هو تمرير تكوين تهيئة السحابة في كل مرة تقوم فيها بإنشاء جهاز ظاهري.
خيار آخر هو استخدام توجيه cloud-init في الصورة لتكوين مساحة التبديل في كل مرة يتم فيها إنشاء الجهاز الظاهري:
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
في السابق، تم استخدام عامل Azure Linux لتكوين مساحة التبديل تلقائيا باستخدام قرص المورد المحلي المرفق بالجهاز الظاهري بعد توفير الجهاز الظاهري على Azure. نظرا لأن cloud-init يعالج الآن هذه الخطوة، يجب عدم استخدام عامل Azure Linux لتنسيق قرص المورد أو إنشاء ملف التبديل. استخدم هذه الأوامر لتعديل /etc/waagent.conf بشكل مناسب:
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
إشعار
إذا كنت تستخدم إصدار cloud-init أقدم من 21.2، فتأكد من تمكين الوحدة النمطية
udf
. ستؤدي إزالتها أو تعطيلها إلى فشل التزويد أو التمهيد. يزيل الإصدار 21.2 من Cloud-init أو أحدث متطلبات UDF.تأكد من أن الملف /etc/fstab يشير إلى القرص باستخدام UUID الخاص به (
by-uuid
).قم بإزالة قواعد udev وملفات تكوين محول الشبكة لتجنب إنشاء قواعد ثابتة لواجهات Ethernet. يمكن أن تتسبب هذه القواعد في حدوث مشاكل عند استنساخ جهاز ظاهري في Microsoft Azure أو Hyper-V.
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 وتغيير المعلمة
DHCLIENT_SET_HOSTNAME
إلى ما يلي:DHCLIENT_SET_HOSTNAME="no"
في ملف /etc/sudoers ، قم بالتعليق على الأسطر التالية أو إزالتها إذا كانت موجودة:
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) وتكوينه للبدء في وقت التمهيد:
sudo systemctl enable sshd
تنظيف مرحلة cloud-init:
sudo cloud-init clean --seed --logs
قم بتشغيل الأوامر التالية لإلغاء توفير الجهاز الظاهري وإعداده للتزويد على Azure.
إذا كنت تقوم بترحيل جهاز ظاهري معين ولا تريد إنشاء صورة معممة، فتخط خطوة إلغاء التوفير.
sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision+user sudo export HISTSIZE=0 sudo rm -f ~/.bash_history
إعداد openSUSE 15.4+
في الجزء الأوسط من Hyper-V Manager، حدد الجهاز الظاهري.
حدد Connect لفتح نافذة الجهاز الظاهري.
في المحطة الطرفية، قم بتشغيل الأمر
zypper lr
. إذا أرجع هذا الأمر إخراجا مشابها للمثال التالي، يتم تكوين المستودعات كما هو متوقع ولا يلزم إجراء أي تعديلات. (قد تختلف أرقام الإصدارات.)# الاسم المستعار الاسم مُمَكّن التحقق من GPG تحديث 1 Cloud:Tools_15.4 Cloud:Tools-> نعم (r) نعم نعم 2 openSUSE_stable_OSS openSUSE_st-> نعم (r) نعم نعم 3 openSUSE_stable_Updates openSUSE_st-> نعم (r) نعم نعم إذا ظهرت الرسالة "لا توجد مستودعات معرفة" من المستودعات
zypper lr
يجب إضافتها يدويا.فيما يلي أمثلة على أوامر إضافة هذه المستودعات (قد تختلف الإصدارات والارتباطات):
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
يمكنك بعد ذلك التحقق من إضافة المستودعات عن طريق تشغيل الأمر
zypper lr
مرة أخرى. إذا لم يتم تمكين أحد مستودعات التحديث ذات الصلة، فقم بتمكينه باستخدام الأمر التالي:sudo zypper mr -e [NUMBER OF REPOSITORY]
قم بتحديث kernel إلى أحدث إصدار متوفر:
sudo zypper up kernel-default
أو قم بتحديث نظام التشغيل مع جميع التصحيحات الأخيرة:
sudo zypper update
تثبيت عامل Azure Linux:
sudo zypper install WALinuxAgent
قم بتعديل خط تمهيد kernel في تكوين GRUB الخاص بك لتضمين معلمات kernel الأخرى ل Azure. للقيام بذلك، افتح /boot/grub/menu.lst في محرر نص وتأكد من أن النواة الافتراضية تتضمن المعلمات التالية:
console=ttyS0 earlyprintk=ttyS0
يضمن هذا الخيار إرسال جميع رسائل وحدة التحكم إلى المنفذ التسلسلي الأول، والذي يمكن أن يساعد دعم Azure في تصحيح المشكلات. بالإضافة إلى ذلك، قم بإزالة المعلمات التالية من سطر تمهيد kernel إذا كانت موجودة:
libata.atapi_enabled=0 reserve=0x1f0,0x8
نوصي بتحرير ملف /etc/sysconfig/network/dhcp وتغيير المعلمة
DHCLIENT_SET_HOSTNAME
إلى الإعداد التالي:DHCLIENT_SET_HOSTNAME="no"
في ملف /etc/sudoers ، قم بالتعليق على الأسطر التالية أو إزالتها إذا كانت موجودة. وهذه خطوة هامة.
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 وتكوينه للبدء في وقت التمهيد.
لا تنشئ مساحة مبادلة على قرص نظام التشغيل.
يمكن لعامل Azure Linux تكوين مساحة التبديل تلقائيا باستخدام قرص المورد المحلي المرفق بالجهاز الظاهري بعد التوفير على Azure. قرص المورد المحلي هو قرص مؤقت وسيتم إفراغه عند إلغاء توفير الجهاز الظاهري.
بعد تثبيت عامل Azure Linux، قم بتعديل المعلمات في /etc/waagent.conf كما يلي:
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 عند بدء التشغيل:
sudo systemctl enable waagent.service
قم بتشغيل الأوامر التالية لإلغاء توفير الجهاز الظاهري وإعداده للتزويد على Azure.
إذا كنت تقوم بترحيل جهاز ظاهري معين ولا تريد إنشاء صورة معممة، فتخط خطوة إلغاء التوفير.
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
حدد Action>Shut down في Hyper-V Manager.
الخطوات التالية
أنت الآن جاهز لاستخدام SUSE Linux VHD لإنشاء أجهزة ظاهرية جديدة في Azure. إذا كانت هذه هي المرة الأولى التي تقوم فيها بتحميل ملف .vhd إلى Azure، فراجع إنشاء جهاز ظاهري يعمل بنظام التشغيل Linux من قرص مخصص.