البرنامج التعليمي: إنشاء وإدارة أجهزة افتراضية لينكس مع Azure CLI

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

توفر أجهزة Azure الظاهرية بيئة حوسبة مرنة وقابلة للتكوين بالكامل. يغطي هذا البرنامج التعليمي عناصر نشر جهاز Azure الظاهري الأساسية، مثل تحديد حجم الجهاز الظاهري وتحديد صورة الجهاز الظاهري ونشر الجهاز الظاهري. ‏‫ستتعلم كيفية:

  • إنشاء جهاز ظاهري وتوصيله
  • تحديد واستخدام صور الجهاز الظاهري
  • عرض واستخدام أحجام محددة للجهاز الظاهري
  • تحجيم جهاز ظاهري
  • عرض وفهم حالة الجهاز الظاهري

يستخدم هذا البرنامج التعليمي CLI داخل Azure Cloud Shell، الذي يتم تحديثه باستمرار إلى أحدث إصدار.

إذا اخترت تثبيت CLI واستخدامه محليًّا، فإن هذا البرنامج التعليمي يتطلب تشغيل الإصدار 2.0.30 من Azure CLI أو إصدار لاحق. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

إنشاء مجموعة الموارد

أنشئ مجموعة موارد باستخدام الأمر az group create.

مجموعة موارد Azure هي حاوية منطقية يتم بها نشر موارد Azure وإدارتها. يجب إنشاء مجموعة موارد قبل جهاز ظاهري. في هذا المثال، يتم إنشاء مجموعة موارد باسم myResourceGroupVM في منطقة eastus2.

az group create --name myResourceGroupVM --location eastus2

عند إنشاء أو تعديل الجهاز الظاهري، يتم تحديد مجموعة الموارد، والتي يمكن رؤيتها في جميع أنحاء هذا البرنامج التعليمي.

إنشاء جهاز ظاهري

أنشئ جهازًا ظاهريًا باستخدام الأمر az vm create.

عند إنشاء جهاز ظاهري، تتوفر العديد من الخيارات، مثل صورة نظام التشغيل، وحجم القرص، وبيانات الاعتماد الإدارية. ينشئ المثال التالي جهازا ظاهريا يسمى myVM يقوم بتشغيل SUSE Linux Enterprise Server (SLES). يتم إنشاء حساب مستخدم اسمه azureuser على الجهاز الظاهري، ويتم إنشاء مفاتيح SSH إذا لم تكن موجودة في موقع المفتاح الافتراضي (~/.ssh):

az vm create \
    --resource-group myResourceGroupVM \
    --name myVM \
    --image SuseSles15SP3 \
    --public-ip-sku Standard \
    --admin-username azureuser \
    --generate-ssh-keys

قد يستغرق إنشاء جهاز ظاهري بضع دقائق. بمجرد إنشاء جهاز ظاهري، يقوم Azure CLI بإخراج معلومات حول الجهاز الظاهري. publicIpAddressلاحظ ، يمكن استخدام هذا العنوان للوصول إلى الجهاز الظاهري.

{
  "fqdns": "",
  "id": "/subscriptions/d5b9d4b7-6fc1-0000-0000-000000000000/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus2",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "52.174.34.95",
  "resourceGroup": "myResourceGroupVM"
}

الاتصال بالجهاز الظاهري

يمكنك الآن الاتصال بالجهاز الظاهري باستخدام SSH في Azure Cloud Shell أو من الكمبيوتر المحلي. استبدال عنوان IP المثال بـ publicIpAddress المشار إليه في الخطوة السابقة.

ssh azureuser@52.174.34.95

بمجرد تسجيل الدخول إلى الجهاز الظاهري، يمكنك تثبيت التطبيقات وتكوينها. عند الانتهاء، يمكنك إغلاق جلسة عمل SSH كالمعتاد:

exit

فهم صور الجهاز الظاهري

يتضمن Azure Marketplace العديد من الصور التي يمكن استخدامها لإنشاء أجهزة ظاهرية. في الخطوات السابقة، تم إنشاء جهاز ظاهري باستخدام صورة Ubuntu. في هذه الخطوة، يتم استخدام Azure CLI للبحث في السوق عن صورة Ubuntu، والتي يتم استخدامها بعد ذلك لنشر جهاز ظاهري ثان.

لمشاهدة قائمة بالصور الأكثر استخدامًا، استخدم الأمر az vm image list.

az vm image list --output table

يقوم إخراج الأمر بإرجاع صور الجهاز الظاهري الأكثر رواجًا على Azure.

Architecture    Offer                         Publisher               Sku                                 Urn                                                                             UrnAlias                 Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------  -----------------------  ---------
x64             debian-10                     Debian                  10                                  Debian:debian-10:10:latest                                                      Debian                   latest
x64             flatcar-container-linux-free  kinvolk                 stable                              kinvolk:flatcar-container-linux-free:stable:latest                              Flatcar                  latest
x64             opensuse-leap-15-3            SUSE                    gen2                                SUSE:opensuse-leap-15-3:gen2:latest                                             openSUSE-Leap            latest
x64             RHEL                          RedHat                  7-LVM                               RedHat:RHEL:7-LVM:latest                                                        RHEL                     latest
x64             sles-15-sp3                   SUSE                    gen2                                SUSE:sles-15-sp3:gen2:latest                                                    SLES                     latest
x64             0001-com-ubuntu-server-jammy  Canonical               18.04-LTS                           Canonical:UbuntuServer:18.04-LTS:latest                                         UbuntuLTS                latest
x64             WindowsServer                 MicrosoftWindowsServer  2022-Datacenter                     MicrosoftWindowsServer:WindowsServer:2022-Datacenter:latest                     Win2022Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2022-datacenter-azure-edition-core  MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest  Win2022AzureEditionCore  latest
x64             WindowsServer                 MicrosoftWindowsServer  2019-Datacenter                     MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest                     Win2019Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2016-Datacenter                     MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest                     Win2016Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-R2-Datacenter                  MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest                  Win2012R2Datacenter      latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-Datacenter                     MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest                     Win2012Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2008-R2-SP1                         MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest                         Win2008R2SP1             latest

يمكن الاطلاع على قائمة كاملة عن طريق إضافة المعلمة --all. كما يمكن تصفية قائمة الصور بواسطة --publisher أو –-offer. في هذا المثال، تتم تصفية القائمة لجميع الصور، المنشورة بواسطة OpenLogic، مع عرض يطابق 0001-com-ubuntu-server-jammy.

az vm image list --offer 0001-com-ubuntu-server-jammy --publisher Canonical --all --output table

مثال على الإخراج الجزئي:

Architecture    Offer                              Publisher    Sku              Urn                                                                       Version
--------------  ---------------------------------  -----------  ---------------  ------------------------------------------------------------------------  ---------------
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202204200          22.04.202204200
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205060          22.04.202205060
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205280          22.04.202205280
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206040          22.04.202206040
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206090          22.04.202206090
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206160          22.04.202206160
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206220          22.04.202206220
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202207060          22.04.202207060

إشعار

قام Canonical بتغيير أسماء العروض التي يستخدمونها لأحدث الإصدارات. قبل Ubuntu 20.04، اسم العرض هو UbuntuServer. بالنسبة إلى Ubuntu 20.04 ، يكون اسم العرض و 0001-com-ubuntu-server-focal ل Ubuntu 22.04 هو 0001-com-ubuntu-server-jammy.

لنشر جهاز ظاهري باستخدام صورة معينة، لاحظ القيمة في العمود Urn، الذي يتكون من الناشر والعرض ووحدة إدارة المخزون ورقم الإصدار اختياريًّا لـ تحديد الصورة. عند تحديد الصورة، يُمكن استبدال رقم إصدار الصورة بـ latest، والذي يُحدد أحدث إصدار من التوزيع. في هذا المثال، يتم استخدام المعلمة --image لتحديد أحدث إصدار من Ubuntu 22.04.

az vm create --resource-group myResourceGroupVM --name myVM2 --image Canonical:0001-com-ubnutu-server-jammy:22_04-lts:latest --generate-ssh-keys

فهم أحجام الجهاز الظاهري

يحدد حجم الجهاز الظاهري مقدار موارد الحوسبة، مثل وحدة المعالجة المركزية، ووحدة معالجة الرسومات، والذاكرة المتوفرة للجهاز الظاهري. يحتاج الجهاز الظاهري إلى تحجيمه بالحجم المناسب لحمل العمل المتوقع. إذا زاد حمل العمل، يمكن أن يتم إعادة حجم جهاز ظاهري موجود.

أحجام الجهاز الظاهري

يصنف الجدول التالي الأحجام إلى حالات استخدام.

النوع ‏‏الوصف
الغرض العام متوازن من وحدة المعالجة المركزية إلى الذاكرة. مثالي للتطوير/ الاختبار والتطبيقات الصغيرة إلى المتوسطة وحلول البيانات.
الحوسبة المحسنة عالي من وحدة المعالجة المركزية إلى الذاكرة. جيد لتطبيقات النقل المتوسطة وأجهزة الشبكة وعمليات الدُّفعة.
الذاكرة المحسنة عالي الذاكرة إلى النواة. يكون ممتازًا لقواعد البيانات العلائقية، وذاكرة التخزين المؤقت المتوسطة إلى الكبيرة، والتحليلات داخل الذاكرة.
التخزين المحسن ارتفاع معدل نقل القرص والإخراج والإدخال. مثالي لقواعد البيانات الضخمة وSQL وNoSQL.
الجرافيك تستهدف الأجهزة الظاهرية المتخصصة عرض الرسومات الثقيلة وتحرير الفيديو.
أداء عال أقوى جهاز افتراضي لوحدة المعالجة المركزية لدينا مع واجهات شبكة اختيارية عالية معدل النقل (RDMA).

البحث عن أحجام الجهاز الظاهري المتوفرة

لمشاهدة قائمة أحجام الجهاز الظاهري المتوفرة في منطقة معينة، استخدم الأمر az vm list-sizes.

az vm list-sizes --location eastus2 --output table

مثال على الإخراج الجزئي:

  MaxDataDiskCount    MemoryInMb  Name                      NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  ----------------------  ---------------  ----------------  ----------------------
4                   8192          Standard_D2ds_v4           2                1047552           76800
8                   16384         Standard_D4ds_v4           4                1047552           153600
16                  32768         Standard_D8ds_v4           8                1047552           307200
32                  65536         Standard_D16ds_v4          16               1047552           614400
32                  131072        Standard_D32ds_v4          32               1047552           1228800
32                  196608        Standard_D48ds_v4          48               1047552           1843200
32                  262144        Standard_D64ds_v4          64               1047552           2457600
4                   8192          Standard_D2ds_v5           2                1047552           76800
8                   16384         Standard_D4ds_v5           4                1047552           153600
16                  32768         Standard_D8ds_v5           8                1047552           307200
32                  65536         Standard_D16ds_v5          16               1047552           614400
32                  131072        Standard_D32ds_v5          32               1047552           1228800
32                  196608        Standard_D48ds_v5          48               1047552           1843200
32                  262144        Standard_D64ds_v5          64               1047552           2457600
32                  393216        Standard_D96ds_v5          96               1047552           3686400

إنشاء جهاز ظاهري بحجم معين

في المثال السابق على إنشاء جهاز ظاهري، لم يتم توفير حجم، مما يؤدي إلى حجم افتراضي. يمكن تحديد حجم الجهاز الظاهري عند الإنشاء باستخدام az vm create والمعلمة --size.

az vm create \
    --resource-group myResourceGroupVM \
    --name myVM3 \
    --image SuseSles15SP3 \
    --size Standard_D2ds_v4  \
    --generate-ssh-keys

تحجيم جهاز ظاهري

بعد نشر الجهاز الظاهري، يمكن تغيير حجمه لزيادة تخصيص الموارد أو تقليله. يمكنك عرض الحالي لحجم الجهاز الظاهري باستخدام az vm show:

az vm show --resource-group myResourceGroupVM --name myVM --query hardwareProfile.vmSize

قبل تغيير حجم الجهاز الظاهري، تحقق مما إذا كان الحجم المطلوب متوفرًا على مجموعة Azure الحالية. يقوم الأمر az vm list-vm-resize-options بإرجاع قائمة الأحجام.

az vm list-vm-resize-options --resource-group myResourceGroupVM --name myVM --query [].name

إذا كان الحجم المطلوب متوفرًا، يمكن تغيير حجم الجهاز الظاهري من حالة التشغيل، ولكن يتم إعادة تشغيله أثناء العملية. استخدم الأمر az vm resize لتنفيذ تغيير الحجم.

az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_D4s_v3

إذا لم يكن الحجم المطلوب على المجموعة الحالية، يحتاج الجهاز الظاهري إلى أن يتم إلغاء تخصيصه قبل أن تحدث عملية تغيير الحجم. استخدم الأمر az vm deallocate لإيقاف الجهاز الظاهري وإلغاء تخصيصه. لاحظ أنه عند تشغيل الجهاز الظاهري مرة أخرى، قد تتم إزالة أية بيانات على القرص المؤقت. كما يتغير عنوان IP العام ما لم يتم استخدام عنوان IP ثابت.

az vm deallocate --resource-group myResourceGroupVM --name myVM

بمجرد إلغاء تخصيصه، قد يحدث تغيير بالحجم.

az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_GS1

بعد تغيير الحجم، يمكن بدء تشغيل الجهاز الظاهري.

az vm start --resource-group myResourceGroupVM --name myVM

حالات الطاقة للجهاز الظاهري

يمكن أن يكون لدى جهاز Azure الظاهري واحدة من العديد من حالات الطاقة. هذه الحالة تمثل الحالة الحالية للجهاز الظاهري من وجهة نظر Hypervisor.

حالات الطاقة

دولة السلطة ‏‏الوصف
البدء تشير إلى أن الجهاز الظاهري يتم بدؤه.
قيد التشغيل تشير إلى أن الجهاز الظاهري قيد التشغيل.
إيقاف يشير إلى أن الجهاز الظاهري يتم إيقافه.
متوقفة يشير إلى أن الجهاز الظاهري قد تم إيقافه. لا تزال الأجهزة الظاهرية في الحالة المتوقفة تتحمل رسوم الحساب.
توزيع الصفقات يشير إلى أن الجهاز الظاهري يتم إلغاء تخصيصه.
تم إلغاء التخصيص يشير إلى أن الجهاز الظاهري قد تمت إزالته من Hypervisor، ولكن لا يزال متوفرًا في وحدة التحكم. في حالة إلغاء التخصيص، لا تتحمل الأجهزة الظاهرية رسوم الحساب.
- يشير إلى أن حالة الطاقة للجهاز الظاهري غير معروفة.

العثور على حالة الطاقة

لاسترداد حالة جهاز ظاهري معين، استخدم الأمر az vm get-instance-view. تأكد من تحديد اسم صالح لجهاز ظاهري ومجموعة الموارد.

az vm get-instance-view \
    --name myVM \
    --resource-group myResourceGroupVM \
    --query instanceView.statuses[1] --output table

إخراج:

Code                Level    DisplayStatus
------------------  -------  ---------------
PowerState/running  Info     VM running

لاسترداد حالة الطاقة لجميع الأجهزة الظاهرية في اشتراكك، استخدم الأجهزة الظاهرية - قائمة جميع واجهات برمجة التطبيقات مع تعيين المعلمة statusOnly إلى صحيح.

مهام الإدارة

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

الحصول على عنوان IP

يعمل هذا الأمر على عرض عناوين IP الخاصة والعامة لجهاز ظاهري.

az vm list-ip-addresses --resource-group myResourceGroupVM --name myVM --output table

إيقاف تشغيل جهاز ظاهري

az vm stop --resource-group myResourceGroupVM --name myVM

بدء تشغيل جهاز ظاهري

az vm start --resource-group myResourceGroupVM --name myVM

حذف موارد الأجهزة الظاهرية

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

يؤدي حذف مجموعة موارد أيضا إلى حذف كافة الموارد في مجموعة الموارد، مثل الجهاز الظاهري والشبكة الظاهرية والقرص. تُعيد المعلمة --no-wait التحكم إلى الموجه دون انتظار إكمال العملية. المعلمة --yes تؤكد رغبتك في حذف الموارد دون مطالبة إضافية للقيام بذلك.

az group delete --name myResourceGroupVM --no-wait --yes

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

في هذا البرنامج التعليمي، تعلمت إنشاء جهاز ظاهري أساسي وإدارته مثل كيفية:

  • إنشاء جهاز ظاهري وتوصيله
  • تحديد واستخدام صور الجهاز الظاهري
  • عرض واستخدام أحجام محددة للجهاز الظاهري
  • تحجيم جهاز ظاهري
  • عرض وفهم حالة الجهاز الظاهري

تقدم إلى البرنامج التعليمي التالي لمعرفة المزيد عن أقراص الجهاز الظاهري.