إعداد جهاز ظاهري يستند إلى CentOS لـ Azure

تنبيه

تشير هذه المقالة إلى CentOS، وهو توزيع Linux يقترب من حالة نهاية العمر الافتراضي (EOL). يرجى مراعاة استخدامك والتخطيط وفقا لذلك. لمزيد من المعلومات، راجع إرشادات نهاية العمر الافتراضي CentOS.

ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات مقياس مرنة

تعرف على كيفية إنشاء وتحميل قرص ثابت ظاهري (VHD) لـ Azure يحتوي على نظام تشغيل Linux يستند إلى CentOS.

المتطلبات الأساسية

تفترض هذه المقالة أنك قمت بالفعل بتثبيت نظام تشغيل CentOS (أو مشتق مشابه) Linux على قرص ثابت ظاهري. توجد أدوات متعددة لإنشاء ملفات ‎.vhd، على سبيل المثال حل الظاهرية، مثل Hyper-V. للحصول على الإرشادات، راجع تثبيت دور Hyper-V وتكوين جهاز ظاهري.

ملاحظات تثبيت CentOS

  • لمزيد من النصائح حول إعداد Linux ل Azure، راجع ملاحظات تثبيت Linux العامة.
  • تنسيق VHDX غير مدعوم في Azure، فقط VHD ثابت. يمكنك تحويل القرص إلى تنسيق VHD باستخدام Hyper-V Manager أو cmdlet المسمى convert-vhd. إذا كنت تستخدم VirtualBox، فهذا يعني تحديد حجم ثابت بدلا من الحجم الافتراضي المخصص ديناميكيا عند إنشاء القرص.
  • يجب تمكين الوحدة النمطية vfat kernel في النواة
  • عند تثبيت نظام Linux، نوصي باستخدام الأقسام القياسية بدلا من LVM (غالبا ما يكون الافتراضي للعديد من التثبيتات). يؤدي هذا إلى تجنب تعارض اسم LVM مع الأجهزة الظاهرية المستنسخة، خاصة إذا كان قرص نظام التشغيل بحاجة إلى إرفاقه بجهاز ظاهري آخر متطابق لاستكشاف الأخطاء وإصلاحها. يمكن استخدام LVM أو RAID على أقراص البيانات.
  • يعد دعم Kernel لتركيب أنظمة ملفات UDF ضرورياً. عند التمهيد الأول على Azure، يتم تمرير تكوين التوفير إلى جهاز Linux الظاهري باستخدام وسائط بتنسيق UDF متصلة بالضيف. يجب أن يقوم عامل Azure Linux أو cloud-init بتحميل نظام ملفات UDF لقراءة تكوينه وتوفير الجهاز الظاهري.
  • لا تدعم إصدارات Linux kernel التي تقل عن 2.6.37 NUMA على Hyper-V بأحجام أجهزة ظاهرية أكبر. تؤثر هذه المشكلة بشكل أساسي على التوزيعات القديمة باستخدام نواة Centos 2.6.32 المصدر وتم إصلاحها في Centos 6.6 (kernel-2.6.32-504). يجب على الأنظمة التي تعمل على نواة مخصصة أقدم من 2.6.37 أو نواة تستند إلى RHEL أقدم من 2.6.32-504 تعيين معلمة numa=off التمهيد على سطر أوامر kernel في grub.conf. لمزيد من المعلومات، راجع Red Hat KB 436883.
  • لا تقم بتكوين قسم مبادلة على قرص نظام التشغيل.
  • يجب أن يكون لجميع أقراص VHD على Azure حجم ظاهري محاذاته إلى 1 ميغابايت. عند التحويل من قرص خام إلى VHD، يجب التأكد من أن حجم القرص الخام هو مضاعف 1 ميغابايت قبل التحويل. راجع ملاحظات تثبيت Linux للحصول على مزيدٍ من المعلومات.

إشعار

Cloud-init >= 21.2 يزيل متطلبات udf. ومع ذلك، دون تمكين وحدة udf النمطية، لن يتم تحميل cdrom أثناء التوفير، مما يمنع تطبيق البيانات المخصصة. الحل البديل لذلك هو تطبيق البيانات المخصصة باستخدام بيانات المستخدم. ومع ذلك، على عكس البيانات المخصصة، لا يتم تشفير بيانات المستخدم. https://cloudinit.readthedocs.io/en/latest/topics/format.html

CentOS 6.x

هام

يرجى ملاحظة أن CentOS 6 قد وصل إلى نهاية العمر الافتراضي (EOL) ولم يعد مدعوما من قبل مجتمع CentOS. وهذا يعني أنه لن يتم إصدار أي تحديثات أو تصحيحات أمان إضافية لهذا الإصدار، مما يجعلها عرضة للمخاطر الأمنية المحتملة. نوصي بشدة بالترقية إلى إصدار أحدث من CentOS لضمان سلامة النظام واستقراره. يرجى استشارة قسم تكنولوجيا المعلومات أو مسؤول النظام للحصول على مزيد من المساعدة.

  1. في Hyper-V Manager، حدد «الجهاز الظاهري».

  2. انقر فوق اتصال لفتح نافذة وحدة تحكم للجهاز الظاهري.

  3. في CentOS 6، يمكن أن يتداخل NetworkManager مع عامل Azure Linux. قم بإلغاء تثبيت هذه الحزمة عن طريق تشغيل الأمر التالي:

    sudo rpm -e --nodeps NetworkManager
    
  4. أنشئ الملف /etc/sysconfig/network أو حرره، ثم أضف النص التالي:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. أنشئ الملف /etc/sysconfig/network-scripts/ifcfg-eth0 أو حرره، ثم أضف النص التالي:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. تعديل قواعد udev لتجنب إنشاء قواعد ثابتة لواجهة (واجهات) Ethernet. قد تتسبب هذه القواعد في حدوث مشكلات عند استنساخ جهاز ظاهري في Microsoft Azure أو Hyper-V:

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
    
  7. تأكد من بدء خدمة الشبكة في وقت التمهيد عن طريق تشغيل الأمر التالي:

    sudo chkconfig network on
    
  8. إذا كنت ترغب في استخدام مرايا OpenLogic المستضافة داخل مراكز بيانات Azure، فاستبدل الملف /etc/yum.repos.d/CentOS-Base.repo بالمستودعات التالية. سيؤدي هذا أيضا إلى إضافة مستودع [openlogic] الذي يتضمن حزما إضافية مثل عامل Azure Linux:

    [openlogic]
    name=CentOS-$releasever - openlogic packages for $basearch
    baseurl=http://olcentgbl.trafficmanager.net/openlogic/$releasever/openlogic/$basearch/
    enabled=1
    gpgcheck=0
    
    [base]
    name=CentOS-$releasever - Base
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    #released updates
    [updates]
    name=CentOS-$releasever - Updates
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    #additional packages that may be useful
    [extras]
    name=CentOS-$releasever - Extras
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    #contrib - packages by Centos Users
    [contrib]
    name=CentOS-$releasever - Contrib
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/contrib/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    

    إشعار

    سيفترض باقي هذا الدليل أنك تستخدم المستودع على الأقل [openlogic] ، والذي سيتم استخدامه لتثبيت عامل Azure Linux أدناه.

  9. أضف السطر التالي إلى /etc/yum.conf:

    http_caching=packages
    
  10. قم بتشغيل الأمر التالي لمسح بيانات تعريف yum الحالية، وتحديث النظام بأحدث الحزم:

    sudo yum clean all
    

    ما لم تكن تقوم بإنشاء صورة لإصدار أقدم من CentOS، نوصي بتحديث جميع الحزم إلى الأحدث:

    sudo yum -y update
    

    قد تكون هناك حاجة إلى إعادة تشغيل بعد تشغيل هذا الأمر.

  11. (اختياري) قم بتثبيت برامج التشغيل الخاصة بـ Linux Integration Services (LIS).

    هام

    تعد هذه الخطوة مطلوبة لـ CentOS 6.3 والإصدارات الأقدم، واختيارية للإصدارات الأحدث.

    sudo rpm -e hypervkvpd  ## (may return error if not installed, that's OK)
    sudo yum install microsoft-hyper-v
    

    بدلاً من ذلك، يمكنك اتباع إرشادات التثبيت اليدوي في صفحة تنزيل LIS لتثبيت RPM على الجهاز الظاهري.

  12. قم بتثبيت عامل Azure Linux وتبعياته. بدء تشغيل خدمة waagent وتمكينها:

    sudo yum install python-pyasn1 WALinuxAgent
    sudo service waagent start
    sudo chkconfig waagent on
    

    تزيل حزمة WALinuxAgent حزم NetworkManager وNetworkManager-gnome إذا لم تتم إزالتها بالفعل كما هو موضح في الخطوة 3.

  13. عدِّل سطر تمهيد kernel في تكوين grub لديك لتضمين معلمات kernel إضافية لـ Azure. للقيام بذلك، افتح /boot/grub/menu.lst في محرر النصوص، وتأكد من أن النواة الافتراضية تشتمل على المعلمات التالية:

    console=ttyS0 earlyprintk=ttyS0 rootdelay=300
    

    سيضمن ذلك أيضًا إرسال جميع رسائل وحدة التحكم إلى المنفذ التسلسلي الأول، والذي يمكن أن يساعد دعم Azure في مشكلات تصحيح الأخطاء.

    بالإضافة إلى ما سبق، نوصي بإزالة المعلمات التالية:

    rhgb quiet crashkernel=auto
    

    رسومية وغير quiet boot مفيدة في بيئة سحابية حيث نريد إرسال جميع السجلات إلى المنفذ التسلسلي. crashkernel قد يتم ترك الخيار مكونا إذا رغبت في ذلك، ولكن لاحظ أن هذه المعلمة ستخفض مقدار الذاكرة المتوفرة في الجهاز الظاهري بمقدار 128 ميغابايت أو أكثر، والتي قد تكون مشكلة على أحجام الأجهزة الظاهرية الأصغر.

    هام

    يجب أيضا على CentOS 6.5 والإصدارات الأقدم تعيين معلمة kernel numa=off. راجع KB 436883 الخاصة بـ Red Hat.

  14. تأكد من تثبيت خادم SSH وتكوينه للبدء في وقت التمهيد. عادةً ما يكون هذا الإعداد هو الإعداد الافتراضي.

  15. لا تنشئ مساحة مبادلة على قرص نظام التشغيل.

    يمكن لـ Azure Linux Agent تكوين مساحة المبادلة تلقائياً باستخدام قرص المورد المحلي المرفق بالجهاز الظاهري بعد التوفير على Azure. قرص المورد المحلي هو قرص مؤقت وقد يتم إفراغه عند إلغاء توفير الجهاز الظاهري. بعد تثبيت عامل Azure Linux (راجع الخطوة السابقة)، قم بتعديل المعلمات التالية في /etc/waagent.conf بشكل مناسب:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.
    
  16. شغِّل الأوامر التالية لإلغاء تزويد الجهاز الظاهري وإعداده للتزويد على Azure:

    sudo waagent -force -deprovision+user
    sudo export HISTSIZE=0
    

إشعار

إذا كنت تقوم بترحيل جهاز ظاهري معين ولا ترغب في إنشاء صورة عامة، فتخط خطوة إلغاء التزويد.

  1. انقر فوق إجراء -> إيقاف التشغيل في Hyper-V Manager. أصبح قرص Linux VHD جاهزاً الآن للتحميل إلى Azure.

CentOS 7.0+

التغييرات في CentOS 7 (والمشتقات المشابهة)

يعد إعداد جهاز CentOS 7 الظاهري ل Azure مشابها ل CentOS 6، ولكن هناك العديد من الاختلافات الهامة التي تجدر الإشارة إليها:

  • لم تعد حزمة NetworkManager تتعارض مع عامل Azure Linux. يتم تثبيت هذه الحزمة بشكل افتراضي، ونوصي بعدم إزالتها.

  • يستخدم GRUB2 الآن كمحمل التشغيل الافتراضي، لذلك تم تغيير إجراء تحرير معلمات kernel (انظر أدناه).

  • يعد XFS الآن نظام الملفات الافتراضي. لا يزال من الممكن استخدام نظام الملفات ext4 إن أردت.

  • نظرا لأن CentOS 8 Stream والأحدث لم يعد يتضمن network.service بشكل افتراضي، فأنت بحاجة إلى تثبيته يدويا:

    sudo yum install network-scripts
    sudo systemctl enable network.service
    

خطوات التكوين

  1. في Hyper-V Manager، حدد «الجهاز الظاهري».

  2. انقر فوق اتصال لفتح نافذة وحدة تحكم للجهاز الظاهري.

  3. أنشئ الملف /etc/sysconfig/network أو حرره، ثم أضف النص التالي:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. أنشئ الملف /etc/sysconfig/network-scripts/ifcfg-eth0 أو حرره، ثم أضف النص التالي:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    NM_CONTROLLED=no
    
  5. تعديل قواعد udev لتجنب إنشاء قواعد ثابتة لواجهة (واجهات) Ethernet. قد تتسبب هذه القواعد في حدوث مشكلات عند استنساخ جهاز ظاهري في Microsoft Azure أو Hyper-V:

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    
  6. إذا كنت ترغب في استخدام مرايا OpenLogic المستضافة داخل مراكز بيانات Azure، فاستبدل الملف /etc/yum.repos.d/CentOS-Base.repo بالمستودعات التالية. سيؤدي ذلك أيضًا إلى إضافة مستودع [openlogic] الذي يتضمن حزمًا لعامل Azure Linux:

    [openlogic]
    name=CentOS-$releasever - openlogic packages for $basearch
    baseurl=http://olcentgbl.trafficmanager.net/openlogic/$releasever/openlogic/$basearch/
    enabled=1
    gpgcheck=0
    
    [base]
    name=CentOS-$releasever - Base
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    #released updates
    [updates]
    name=CentOS-$releasever - Updates
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    #additional packages that may be useful
    [extras]
    name=CentOS-$releasever - Extras
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    

    إشعار

    سيفترض باقي هذا الدليل أنك تستخدم المستودع على الأقل [openlogic] ، والذي سيتم استخدامه لتثبيت عامل Azure Linux أدناه.

  7. شغّل الأمر التالي لمسح بيانات تعريف yum الحالية وتثبيت أية تحديثات:

    sudo yum clean all
    

    ما لم تكن تقوم بإنشاء صورة لإصدار أقدم من CentOS، نوصي بتحديث جميع الحزم إلى الأحدث:

    sudo yum -y update
    

    قد تكون هناك حاجة إلى إعادة تشغيل بعد تشغيل هذا الأمر.

  8. عدِّل سطر تمهيد kernel في تكوين grub لديك لتضمين معلمات kernel إضافية لـ Azure. للقيام بذلك، افتح /etc/default/grub في محرر نصوص، وقم بتحرير المعلمة GRUB_CMDLINE_LINUX، على سبيل المثال:

    GRUB_CMDLINE_LINUX="rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
    

    سيضمن ذلك أيضًا إرسال جميع رسائل وحدة التحكم إلى المنفذ التسلسلي الأول، والذي يمكن أن يساعد دعم Azure في مشكلات تصحيح الأخطاء. ويقوم أيضًا بإيقاف تشغيل اصطلاحات تسمية CentOS 7 الجديدة لبطاقات NIC. بالإضافة إلى ما سبق، نوصي بإزالة المعلمات التالية:

    rhgb quiet crashkernel=auto
    

    التمهيد الرسومي والهادئ غير مفيد في بيئة سحابية حيث نريد إرسال جميع السجلات إلى المنفذ التسلسلي. crashkernel قد يتم ترك الخيار مكونا إذا رغبت في ذلك، ولكن لاحظ أن هذه المعلمة ستخفض مقدار الذاكرة المتوفرة في الجهاز الظاهري بمقدار 128 ميغابايت أو أكثر، والتي قد تكون مشكلة على أحجام الأجهزة الظاهرية الأصغر.

  9. بمجرد الانتهاء من التحرير /etc/default/grub لكل أعلاه، قم بتشغيل الأمر التالي لإعادة إنشاء تكوين grub:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    

إشعار

إذا تم تحميل جهاز ظاهري تم تمكينه لـ UEFI، فإن الأمر الخاص بتحديث grub هو grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg. أيضا، يجب تمكين الوحدة النمطية vfat kernel في النواة وإلا سيفشل التوفير.

تأكد من تمكين الوحدة النمطية "udf". ستؤدي إزالتها/تعطيلها إلى فشل التزويد/التمهيد. (_Cloud-init >= 21.2 يزيل متطلبات udf. اقرأ الجزء العلوي من المستند لمزيد من التفاصيل.)

  1. في حالة إنشاء الصورة من VMware أو VirtualBox أو KVM: تأكد من تضمين برامج تشغيل Hyper-V في initramfs:

    حرر /etc/dracut.conf، وأضف المحتوى:

    add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
    

    أعد بناء initramfs:

    sudo dracut -f -v
    
  2. تثبيت عامل Azure Linux والتبعيات لملحقات جهاز Azure الظاهري:

    sudo yum install python-pyasn1 WALinuxAgent
    sudo systemctl enable waagent
    
  3. ثبّت cloud-init للتعامل مع التزويد

    sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
    1. تكوين 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
    
    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
    
    sudo echo "Allow only Azure datasource, disable fetching network setting via IMDS"
    sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF
    datasource_list: [ Azure ]
    datasource:
        Azure:
            apply_network_config: False
    EOF
    
    if [[ -f /mnt/swapfile ]]; then
    echo Removing swapfile - RHEL uses a swapfile by default
    swapoff /mnt/swapfile
    rm /mnt/swapfile -f
    fi
    
    echo "Add console log file"
    cat >> /etc/cloud/cloud.cfg.d/05_logging.cfg <<EOF
    
    # 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
    
  4. تكوين المبادلة

    لا تقم بإنشاء مساحة تبديل على قرص نظام التشغيل.

    في السابق، تم استخدام عامل Azure Linux لتكوين مساحة التبديل تلقائيا باستخدام قرص المورد المحلي المرفق بالجهاز الظاهري بعد توفير الجهاز الظاهري على Azure. ومع ذلك، يتم التعامل مع هذا الأمر الآن بواسطة cloud-init، ويجب عدم استخدام عامل Linux لتنسيق قرص المورد لإنشاء ملف المبادلة، وتعديل المعلمات التالية في /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 في كل مرة تقوم فيها بإنشاء جهاز ظاهري

    • استخدم توجيهاً سحابياً مخبأً في الصورة والذي يقوم بذلك في كل مرة يتم فيها إنشاء الجهاز الظاهري:

      sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
      sudo cat > /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"]
        - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"]
      EOF
      
  5. شغِّل الأوامر التالية لإلغاء تزويد الجهاز الظاهري وإعداده للتزويد على Azure:

    إشعار

    إذا كنت تقوم بترحيل جهاز ظاهري معين ولا ترغب في إنشاء صورة معممة، فتخط خطوة إلغاء التوفير.

    sudo rm -f /var/log/waagent.log
    sudo cloud-init clean
    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    
  6. انقر فوق إجراء -> إيقاف التشغيل في Hyper-V Manager. أصبح قرص Linux VHD جاهزاً الآن للتحميل إلى Azure.

الخطوات التالية

أنت الآن جاهز لاستخدام القرص الثابت الظاهري CentOS Linux لإنشاء أجهزة ظاهرية جديدة في Azure. إذا كانت هذه هي المرة الأولى التي تقوم فيها بتحميل ملف .vhd إلى Azure، فراجع إنشاء جهاز ظاهري يعمل بنظام التشغيل Linux من قرص مخصص.