إعداد جهاز ظاهري Ubuntu لـ Azure
ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات مقياس مرنة
ينشر Ubuntu الآن أقراص Azure الثابتة الظاهرية الرسمية (VHDs) للتنزيل على صفحة ويب Ubuntu Cloud Images. إذا كنت بحاجة إلى إنشاء صورة Ubuntu متخصصة خاصة بك ل Azure بدلا من استخدام الإجراء اليدوي التالي، فابدأ بأقراص VHD العاملة المعروفة هذه وقم بتخصيصها، حسب الحاجة. يمكنك دائما العثور على أحدث إصدارات الصور في المواقع التالية:
- Ubuntu 18.04/Bionic: bionic-server-cloudimg-amd64-azure.vhd.zip
- Ubuntu 20.04/Focal: focal-server-cloudimg-amd64-azure.vhd.zip
- Ubuntu 22.04/جمي: jammy-server-cloudimg-amd64-azure.vhd.zip
المتطلبات الأساسية
تفترض هذه المقالة أنك قمت بالفعل بتثبيت نظام تشغيل Ubuntu Linux (OS) على VHD. توجد أدوات متعددة لإنشاء ملفات .vhd. مثال على ذلك هو حل ظاهري مثل Hyper-V. للحصول على الإرشادات، راجع تثبيت دور Hyper-V وتكوين جهاز ظاهري (VM).
ملاحظات تثبيت Ubuntu
- لمزيد من النصائح حول إعداد Linux ل Azure، راجع ملاحظات تثبيت Linux العامة.
- تنسيق VHDX غير مدعوم في Azure، فقط VHD ثابت. يمكنك تحويل القرص إلى تنسيق VHD باستخدام Hyper-V Manager أو
Convert-VHD
cmdlet. - عند تثبيت نظام Linux، نوصي باستخدام الأقسام القياسية بدلا من إدارة وحدة التخزين المنطقية (LVM)، والتي غالبا ما تكون الافتراضية للعديد من التثبيتات. تتجنب هذه الأقسام القياسية تعارض اسم LVM مع الأجهزة الظاهرية المستنسخة، خاصة إذا كان قرص نظام التشغيل بحاجة إلى إرفاقه بجهاز ظاهري آخر لاستكشاف الأخطاء وإصلاحها. يمكن أيضا استخدام LVM أو RAID على أقراص البيانات.
- لا تقم بتكوين قسم تبديل أو ملف تبديل على قرص نظام التشغيل. يمكنك تكوين
cloud-init
عامل التوفير لإنشاء ملف تبديل أو قسم تبديل على قرص المورد المؤقت. لمزيد من المعلومات حول هذه العملية، راجع الخطوات التالية. - يجب أن يكون لجميع أقراص VHD على Azure حجم ظاهري محاذاته إلى 1 ميغابايت. عند التحويل من قرص خام إلى VHD، يجب التأكد من أن حجم القرص الخام هو مضاعف 1 ميغابايت قبل التحويل. لمزيد من المعلومات، راجع ملاحظات تثبيت Linux.
خطوات يدوية
إشعار
قبل محاولة إنشاء صورة Ubuntu المخصصة الخاصة بك ل Azure، ضع في اعتبارك استخدام الصور التي تم إنشاؤها مسبقا واختبارها من صفحة ويب Ubuntu Cloud Images بدلا من ذلك.
في الجزء الأوسط من Hyper-V Manager، حدد الجهاز الظاهري.
حدد Connect لفتح نافذة الجهاز الظاهري.
استبدل المستودعات الحالية في الصورة لاستخدام مستودع Azure الخاص ب Ubuntu.
قبل التحرير
/etc/apt/sources.list
، نوصي بإجراء نسخة احتياطية:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's#http://archive\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list sudo sed -i 's#http://[a-z][a-z]\.archive\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list sudo sed -i 's#http://security\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list sudo sed -i 's#http://[a-z][a-z]\.security\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list sudo apt-get update
تستخدم صور Ubuntu Azure الآن Azure-tailored kernel. تحديث نظام التشغيل إلى أحدث نواة مخصصة من Azure وتثبيت أدوات Azure Linux (بما في ذلك تبعيات Hyper-V):
sudo apt update sudo apt install linux-azure linux-image-azure linux-headers-azure linux-tools-common linux-cloud-tools-common linux-tools-azure linux-cloud-tools-azure sudo apt full-upgrade sudo reboot
تعديل خط تمهيد kernel ل GRUB لتضمين معلمات kernel إضافية ل Azure. للقيام بهذه الخطوة، افتح
/etc/default/grub
في محرر نص، وابحث عن المتغير المسمىGRUB_CMDLINE_LINUX_DEFAULT
(أو أضفه إذا لزم الأمر)، وقم بتحريره لتضمين المعلمات التالية:GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300 quiet splash"
احفظ هذا الملف واغلقه، ثم قم بالتشغيل
sudo update-grub
. تضمن هذه الخطوة إرسال جميع رسائل وحدة التحكم إلى المنفذ التسلسلي الأول، والذي يمكن أن يساعد الدعم التقني ل Azure في تصحيح المشكلات.تأكد من تثبيت خادم SSH وتكوينه للبدء في وقت التمهيد. عادةً ما يكون هذا الإعداد هو الإعداد الافتراضي.
تثبيت
cloud-init
(عامل التوفير) وعامل Azure Linux (معالج ملحقات الضيف).Cloud-init
يستخدمnetplan
لتكوين تكوين شبكة النظام (أثناء التوفير وكل تمهيد لاحق) وتقسيمgdisk
أقراص الموارد.sudo apt update sudo apt install cloud-init gdisk netplan.io walinuxagent && systemctl stop walinuxagent
إشعار
walinuxagent
قد تقوم الحزمة بإزالةNetworkManager
الحزم وNetworkManager-gnome
، إذا تم تثبيتها.إزالة
cloud-init
التكوينات الافتراضية والبيانات الاصطناعية المتبقيةnetplan
التي قد تتعارض معcloud-init
التوفير على Azure:sudo rm -f /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg /etc/cloud/cloud.cfg.d/curtin-preserve-sources.cfg /etc/cloud/cloud.cfg.d/99-installer.cfg /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg sudo rm -f /etc/cloud/ds-identify.cfg sudo rm -f /etc/netplan/*.yaml
تكوين
cloud-init
لتوفير النظام باستخدام مصدر بيانات Azure:cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg datasource_list: [ Azure ] EOF cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/90-azure.cfg system_info: package_mirrors: - arches: [i386, amd64] failsafe: primary: http://archive.ubuntu.com/ubuntu security: http://security.ubuntu.com/ubuntu search: primary: - http://azure.archive.ubuntu.com/ubuntu/ security: [] - arches: [armhf, armel, default] failsafe: primary: http://ports.ubuntu.com/ubuntu-ports security: http://ports.ubuntu.com/ubuntu-ports EOF cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg reporting: logging: type: log telemetry: type: hyperv EOF
تكوين عامل Azure Linux للاعتماد عليه
cloud-init
لإجراء التوفير. لمزيد من المعلومات حول هذه الخيارات، انظر إلى مشروع WALinuxAgent.sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/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
cat <<EOF | sudo tee -a /etc/waagent.conf # For Azure Linux agent version >= 2.2.45, this is the option to configure, # enable, or disable the provisioning behavior of the Linux agent. # Accepted values are auto (default), waagent, cloud-init, or disabled. # A value of auto means that the agent will rely on cloud-init to handle # provisioning if it is installed and enabled, which in this case it will. Provisioning.Agent=auto EOF
تنظيف
cloud-init
وسجلات وقت تشغيل عامل Azure Linux:sudo cloud-init clean --logs --seed sudo rm -rf /var/lib/cloud/ sudo systemctl stop walinuxagent.service sudo rm -rf /var/lib/waagent/ sudo rm -f /var/log/waagent.log
إلغاء توفير الجهاز الظاهري وإعداده للتزويد على Azure.
إشعار
يقوم
sudo waagent -force -deprovision+user
الأمر بتعميم الصورة عن طريق محاولة تنظيف النظام وجعله مناسبا لإعادة التزويد. يحذف الخيار+user
آخر حساب مستخدم تم تزويده والبيانات المرتبطة به.sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history
تحذير
لا يضمن إلغاء التوفير باستخدام الأمر السابق مسح الصورة من جميع المعلومات الحساسة ومناسبة لإعادة التوزيع.
حدد Action>Shut down في Hyper-V Manager.
يقبل Azure فقط VHDs ذات الحجم الثابت. إذا لم يكن قرص نظام التشغيل الخاص بالجهاز الظاهري VHD ثابتا الحجم، فاستخدم
Convert-VHD
PowerShell cmdlet وحدد-VHDType Fixed
الخيار. لمزيد من المعلومات، انظر إلى مستنداتConvert-VHD
في Convert-VHD.لإحضار جهاز ظاهري من الجيل 2 على Azure، اتبع الخطوات التالية:
تغيير الدليل إلى
boot EFI
الدليل:cd /boot/efi/EFI
انسخ
ubuntu
الدليل إلى دليل جديد يسمىboot
:sudo cp -r ubuntu/ boot
قم بتغيير الدليل إلى دليل التمهيد الذي تم إنشاؤه حديثا:
cd boot
إعادة تسمية
shimx64.efi
الملف:sudo mv shimx64.efi bootx64.efi
إعادة تسمية
grub.cfg
الملف إلىbootx64.cfg
:sudo mv grub.cfg bootx64.cfg
المحتوى ذو الصلة
أنت الآن جاهز لاستخدام Ubuntu Linux VHD لإنشاء أجهزة ظاهرية جديدة في Azure. إذا كانت هذه هي المرة الأولى التي تقوم فيها بتحميل ملف .vhd إلى Azure، فراجع إنشاء جهاز ظاهري يعمل بنظام التشغيل Linux من قرص مخصص.