إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات المقياس المرنة ✔️ مجموعات المقياس الموحدة
في هذه المقالة، ستتعلم كيفية إعداد جهاز ظاهري Red Hat Enterprise Linux (RHEL) للاستخدام في Azure. إصدارات RHEL التي تغطيها هذه المقالة هي 7.x، 8.X.، 9.x. المعالجات الافتراضية للتحضير التي تم تناولها في هذا المقال هي Hyper-V، وVM المعتمد على النواة (KVM)، وVMware، وKickstart.
لمزيد من المعلومات حول متطلبات الأهلية للمشاركة في برنامج Red Hat للوصول إلى السحابة، راجع موقع Red Hat Cloud Access على الويب وتشغيل RHEL على Azure. للحصول على طرق لأتمتة إنشاء صور RHEL، راجع Azure Image Builder.
المتطلبات الأساسية
إشعار
تفترض هذه الوثيقة أنك قمت بالفعل بنشر RHEL7 وحصلت على ترخيص كامل. يتم دعم الصور التي تم تحميلها في EOL أو خارجها على أساس معقول من الجهد التجاري. لمزيد من المعلومات، راجع دورات حياة منتج Red Hat.
ملاحظات تثبيت RHEL
- لا يدعم Azure تنسيق VHDX. يدعم Azure VHD الثابت فقط. يمكنك استخدام Hyper-V Manager لتحويل القرص إلى تنسيق VHD، أو يمكنك استخدام
convert-vhdcmdlet. إذا كنت تستخدم VirtualBox، فحدد الحجم الثابت بدلاً من الخيار الافتراضي المخصص ديناميكيًا عند إنشاء القرص. - يدعم Azure الأجهزة الظاهرية Gen1 (تمهيد BIOS) وGen2 (تمهيد UEFI).
- الحد الأقصى المسموح به لجهاز VHD هو 1,023 جيجابايت.
- يجب تمكين الوحدة النمطية vfat kernel في النواة.
- يتم دعم إدارة وحدة التخزين المنطقية (LVM) ويمكن استخدامها على قرص نظام التشغيل أو أقراص البيانات في أجهزة Azure الظاهرية. بشكل عام، نوصي باستخدام الأقسام القياسية على قرص نظام التشغيل بدلا من LVM. تتجنب هذه الممارسة تعارض اسم LVM مع الأجهزة الظاهرية المستنسخة، خاصة إذا كنت بحاجة إلى إرفاق قرص نظام تشغيل بجهاز ظاهري آخر متطابق لاستكشاف الأخطاء وإصلاحها. لمزيد من المعلومات، راجع وثائق LVM و RAID.
- مطلوب دعم Kernel لتثبيت أنظمة ملفات تنسيق القرص العالمي (UDF). عند أول إقلاع على Azure، تمرر الوسائط المرفقة بتنسيق UDF تكوين التوفير إلى آلة لينكس الافتراضية. يجب أن يكون عامل Azure Linux قادرًا على إدخال نظام ملفات UDF لقراءة تكوينه وتوفير الجهاز الظاهري. بدون هذه الخطوة، يفشل التوفير.
- لا تقم بتكوين قسم تبديل على قرص نظام التشغيل. لمزيد من المعلومات، اقرأ الخطوات التالية.
- يجب أن يكون لجميع أقراص VHD على Azure حجم ظاهري محاذاته إلى 1 ميغابايت. عند التحويل من قرص خام إلى VHD، يجب التأكد من أن حجم القرص الخام هو مضاعف 1 ميغابايت قبل التحويل. لمزيد من المعلومات، اقرأ الخطوات التالية. راجع أيضا ملاحظات تثبيت Linux.
إشعار
Cloud-init >= 21.2 يزيل متطلبات UDF. ومع ذلك، بدون تفعيل وحدة UDF، يفشل CD-ROM المقدم في التركيب، مما يمنع تطبيق البيانات المخصصة. الحل البديل هو تطبيق البيانات المخصصة باستخدام بيانات المستخدم. على عكس البيانات المخصصة، لا يتم تشفير بيانات المستخدم. لمزيد من المعلومات، راجع تنسيقات بيانات المستخدم.
- RHEL 7 باستخدام Hyper-V Manager
- RHEL 8/9/10 باستخدام مدير Hyper-V
- RHEL 7 باستخدام KVM
- RHEL 8/9/10 باستخدام KVM
- RHEL 7 باستخدام VMware
- RHEL 8/9/10 باستخدام VMware
- RHEL 7 باستخدام Kickstart
- RHEL 8/9/10 باستخدام Kickstart
في Hyper-V Manager، حدد الجهاز الظاهري.
حدد Connect لفتح نافذة وحدة تحكم للجهاز الظاهري.
أنشئ الملف
/etc/sysconfig/networkأو حرره، ثم أضف النص التالي:NETWORKING=yes HOSTNAME=localhost.localdomainأنشئ الملف
/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إشعار
عند استخدام الشبكات المتسارعة، يجب تكوين الواجهة الاصطناعية المخصصة لتكون غير مدارة باستخدام قاعدة udev. يمنع
NetworkManagerهذا الإجراء من تعيين نفس IP إليه مثل الواجهة الأساسية.لتطبيقه:
sudo tee <<EOF /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules > /dev/null # 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!="remove", ENV{NM_UNMANAGED}="1" EOFتأكد من أن خدمة الشبكة تبدأ في وقت التمهيد:
sudo systemctl enable networkتسجيل اشتراك Red Hat لتمكين تثبيت الحزم من مستودع RHEL:
sudo subscription-manager register --auto-attach --username=XXX --password=XXXتعديل خط تمهيد kernel في تكوين grub الخاص بك لتضمين المزيد من معلمات kernel ل Azure. لإجراء هذا التعديل، افتح
/etc/default/grubفي محرر نص وقم بتحرير المعلمةGRUB_CMDLINE_LINUX. على سبيل المثال:GRUB_TIMEOUT=10 GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0 net.ifnames=0 nvme_core.io_timeout=240" GRUB_TERMINAL="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"تقوم هذه التعديلات بإيقاف نظام التسمية الجديد لبطاقات NIC، وتضمن إرسال جميع رسائل الجهاز إلى أول منفذ تسلسلي، وتمكن التفاعل مع الجهاز، مما يمكن أن يساعد دعم Aure في مشاكل التصحيح.
rhgb quiet crashkernel=autoالأحذية الرسومية والهادئة ليست مفيدة في بيئة سحابية حيث تريد إرسال جميع السجلات إلى المنفذ التسلسلي. يمكنك ترك
crashkernelالخيار مكونا إذا كنت تريد ذلك. تقلل هذه المعلمة مقدار الذاكرة المتوفرة في الجهاز الظاهري بمقدار 128 ميغابايت أو أكثر، مما قد يكون مشكلة لأحجام الأجهزة الظاهرية الأصغر.بعد الانتهاء من التحرير
/etc/default/grub، قم بتشغيل الأمر التالي لإعادة إنشاء تكوين grub:sudo grub2-mkconfig -o /boot/grub2/grub.cfgإشعار
إذا كنت تقوم بتحميل جهاز ظاهري ممكن ل UEFI، فإن الأمر لتحديث grub هو
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg.تأكد من تثبيت خادم SSH وتكوينه للبدء في وقت التمهيد، والذي عادةً ما يكون بالإعداد الافتراضي. عدِّل
/etc/ssh/sshd_configلتضمين السطر التالي:ClientAliveInterval 180حزمة
WALinuxAgent-<version>WALinuxAgent متوفرة من مستودع الإضافات.sudo subscription-manager repos --enable=rhel-7-server-extras-rpmsتثبيت عامل Azure Linux والأدوات
cloud-initالمساعدة الضرورية الأخرى:sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.serviceتكوين
cloud-initللتعامل مع التزويد:تكوين
waagentلcloud-init: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إشعار
إذا كنت تقوم بترحيل جهاز ظاهري معين ولا تريد إنشاء صورة معممة، فقم بتعيين
Provisioning.Agent=disabledعلى/etc/waagent.confالتكوين.تكوين وحدات:
sudo echo "Adding mounts and disk_setup to init stage" sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfgتكوين مصدر بيانات Azure:
sudo echo "Allow only Azure datasource, disable fetching network setting via IMDS" sudo tee /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOFإذا تم تكوينه، فقم بإزالة ملف التبديل الموجود:
if [[ -f /mnt/resource/swapfile ]]; then echo "Removing swapfile" #RHEL uses a swapfile by default swapoff /mnt/resource/swapfile rm /mnt/resource/swapfile -f fiتكوين
cloud-initالتسجيل:sudo echo "Add console log file" sudo tee <<EOF /etc/cloud/cloud.cfg.d/05_logging.cfg > /dev/null # 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
تكوين المبادلة:
لا تقم بإنشاء مساحة تبديل على قرص نظام التشغيل.
في السابق، كان يتم استخدام وكيل Azure Linux لتكوين مساحة التبديل تلقائيا على قرص الموارد المحلي المتصل بالجهاز الافتراضي بعد توفير الجهاز الافتراضي على Azure،
cloud-initوالآن يتولى هذا الإجراء. يجب عدم استخدام عامل Linux لتنسيق قرص المورد لإنشاء ملف التبديل. تعديل المعلمات التالية بشكل/etc/waagent.confمناسب:ResourceDisk.Format=n ResourceDisk.EnableSwap=nإذا كنت تريد تحميل التبديل وتنسيقه وإنشائه، فيمكنك إما:
مرر هذه التعليمة البرمجية كتكوين
cloud-initفي كل مرة تقوم فيها بإنشاء جهاز ظاهري من خلال بيانات مخصصة. نوصي بهذا الأسلوب.استخدم توجيها مخبوزا
cloud-initفي الصورة التي تقوم بهذه الخطوة في كل مرة يتم فيها إنشاء الجهاز الظاهري.sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf sudo tee /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
تكوين
cloud-initبيانات تتبع الاستخدام للمساعدة في استكشاف الأخطاء وإصلاحها لمشكلات التوفير:sudo tee -a /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg <<EOF # This config enables cloud-init to report provisioning telemetry to aid with troubleshooting Reporting: logging: type: log telemetry: type: hyperv EOFإذا كنت تريد إلغاء تسجيل الاشتراك، فشغِّل الأمر التالي:
sudo subscription-manager unregisterإلغاء توفير الجهاز الظاهري وإعداده للتزويد على Azure:
تنبيه
إذا كنت تقوم بترحيل جهاز ظاهري معين ولا تريد إنشاء صورة معممة، فتخط خطوة إلغاء التوفير. يؤدي تشغيل الأمر
waagent -force -deprovision+userإلى جعل الجهاز المصدر غير قابل للاستخدام. تهدف هذه الخطوة فقط إلى إنشاء صورة معممة.sudo rm -f /var/log/waagent.log sudo cloud-init clean --logs --seed sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0حدد Action>Shut down في Hyper-V Manager. أصبح قرص Linux VHD جاهزاً الآن للتحميل إلى Azure.