مشاركة عبر


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

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

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

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

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

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

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

أدناه، نعلن عن متغيرات البيئة. يتم إلحاق لاحقة عشوائية بأسماء الموارد التي يجب أن تكون فريدة لكل عملية نشر.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="eastus2"
export MY_RESOURCE_GROUP_NAME="myResourceGroupVM$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION

النتائج:

{
  "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupVMxxx",
  "location": "eastus2",
  "name": "myResourceGroupVMxxx",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

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

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

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

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

export MY_VM_NAME="myVM$RANDOM_SUFFIX"
az vm create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $MY_VM_NAME \
    --image SuseSles15SP5 \
    --public-ip-sku Standard \
    --admin-username azureuser \
    --generate-ssh-keys

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

{
  "fqdns": "",
  "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupVMxxx/providers/Microsoft.Compute/virtualMachines/myVMxxx",
  "location": "eastus2",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "52.174.34.95",
  "resourceGroup": "myResourceGroupVMxxx"
}

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

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

للاتصال بالجهاز الظاهري، قم أولا باسترداد عنوان IP العام باستخدام Azure CLI. نفذ الأمر التالي لتخزين عنوان IP في متغير: export IP_ADDRESS=$(az vm show --show-details --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query publicIps --output tsv)

بمجرد أن يكون لديك عنوان IP، استخدم SSH للاتصال بالجهاز الظاهري. يتصل الأمر التالي بالجهاز الظاهري باستخدام azureuser الحساب وعنوان IP المسترد: ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS

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

يتضمن Azure Marketplace العديد من الصور التي يمكن استخدامها لإنشاء أجهزة ظاهرية. في الخطوات السابقة، تم إنشاء جهاز ظاهري باستخدام صورة SUSE. في هذه الخطوة، يتم استخدام 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.

export MY_VM2_NAME="myVM2$RANDOM_SUFFIX"
az vm create --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM2_NAME --image Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest --generate-ssh-keys

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

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

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

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

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

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

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

az vm list-sizes --location $REGION --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.

export MY_VM3_NAME="myVM3$RANDOM_SUFFIX"
az vm create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $MY_VM3_NAME \
    --image SuseSles15SP5 \
    --size Standard_D2ds_v4  \
    --generate-ssh-keys

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

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

az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query hardwareProfile.vmSize

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

az vm list-vm-resize-options --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --query [].name

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

az vm resize --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --size Standard_D4s_v3

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

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

az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

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

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

حالات الطاقة

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

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

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

az vm get-instance-view \
    --name $MY_VM_NAME \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --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 $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME --output table

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

az vm stop --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

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

az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_VM_NAME

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

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

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

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

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

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

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