إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Azure Stack Edge Pro - GPU
Azure Stack Edge Pro 2
Azure Stack Edge Pro R
Azure Stack Edge Mini R
يمكنك إنشاء وإدارة الأجهزة الظاهرية (VMs) على جهاز Azure Stack Edge باستخدام واجهات برمجة التطبيقات. واجهات برمجة التطبيقات هذه هي واجهات برمجة تطبيقات Azure Resource Manager القياسية التي تسمى باستخدام نقطة نهاية Azure Stack Edge المحلية. توفر واجهات برمجة تطبيقات Azure Resource Manager طبقة إدارة متسقة تمكنك في هذه الحالة من إنشاء الأجهزة الظاهرية وتحديثها وحذفها في اشتراك محلي موجود على الجهاز. يمكنك الاتصال ب Azure Resource Manager الذي يعمل على Azure Stack Edge عبر Azure PowerShell cmdlets.
يصف هذا البرنامج التعليمي كيفية إنشاء جهاز ظاهري وإدارته على جهاز Azure Stack Edge Pro باستخدام Python وواجهة برمجة تطبيقات Azure.
سير عمل توزيع الجهاز الظاهري
يتم توضيح سير عمل التوزيع في الرسم التخطيطي التالي.
الملخص عالي المستوى لسير عمل التوزيع كما يلي:
- الاتصال ب Azure Resource Manager
- إنشاء مجموعة موارد
- إنشاء حساب تخزين
- إضافة blob URI إلى ملف المضيفين
- تثبيت الشهادات
- تحميل VHD
- إنشاء أقراص مدارة من VHD
- إنشاء صورة جهاز ظاهري من القرص المدار للصورة
- إنشاء جهاز ظاهري باستخدام الموارد التي تم إنشاؤها مسبقا
- إنشاء شبكة افتراضية
- إنشاء VNIC باستخدام معرف الشبكة الفرعية VNet
للحصول على شرح مفصل لرسم سير العمل التخطيطي، راجع نشر الأجهزة الظاهرية على جهاز Azure Stack Edge Pro باستخدام Azure PowerShell. للحصول على معلومات حول كيفية الاتصال ب Azure Resource Manager، راجع الاتصال ب Azure Resource Manager باستخدام Azure PowerShell.
المتطلبات الأساسية
قبل البدء في إنشاء جهاز ظاهري وإدارته على جهاز Azure Stack Edge Pro باستخدام Azure CLI وPython، تحتاج إلى التأكد من إكمال المتطلبات الأساسية المذكورة في الخطوات التالية:
أكملت إعدادات الشبكة على جهاز Azure Stack Edge Pro كما هو موضح في الخطوة 1: تكوين جهاز Azure Stack Edge Pro.
لقد قمت بتمكين واجهة شبكة للحوسبة. يتم استخدام عنوان IP لواجهة الشبكة هذا لإنشاء مفتاح ظاهري لتوزيع الجهاز الظاهري. ترشدك الخطوات التالية خلال العملية:
انتقل إلى Compute. حدد واجهة الشبكة التي ستستخدمها لإنشاء مفتاح ظاهري.
هام
يمكنك تكوين منفذ واحد فقط للحساب.
تمكين الحساب على واجهة الشبكة. يقوم Azure Stack Edge Pro بإنشاء وإدارة مفتاح ظاهري يتوافق مع واجهة الشبكة هذه.
لقد قمت بإنشاء وتثبيت جميع الشهادات على جهاز Azure Stack Edge Pro وفي المخزن الموثوق به لعميلك. اتبع الإجراء الموضح في الخطوة 2: إنشاء الشهادات وتثبيتها.
لقد أنشأت شهادة .cer مشفرة Base-64 (تنسيق PEM) لجهاز Azure Stack Edge Pro. تم تحميل هذه الشهادة بالفعل كسلسلة توقيع على الجهاز وتثبيتها في مخزن الجذر الموثوق به على العميل الخاص بك. هذه الشهادة مطلوبة أيضا بتنسيق pem ل Python للعمل على هذا العميل.
تحويل هذه الشهادة إلى
pemتنسيق باستخدام الأمر certutil . يجب تشغيل هذا الأمر في الدليل الذي يحتوي على الشهادة.certutil.exe <SourceCertificateName.cer> <DestinationCertificateName.pem>يظهر التالي نموذج استخدام الأمر:
PS C:\Certificates> certutil.exe -encode aze-root.cer aze-root.pem Input Length = 2150 Output Length = 3014 CertUtil: -encode command completed successfully. PS C:\Certificates>كما ستضيف هذا
pemإلى مخزن Python لاحقا.لقد قمت بتعيين عنوان IP للجهاز في صفحة الشبكة في واجهة مستخدم الويب المحلية للجهاز. أضف عنوان IP هذا إلى:
- ملف المضيف على العميل،
- تكوين خادم DNS
هام
نوصي بتعديل تكوين خادم DNS لتحليل اسم نقطة النهاية.
ابدأ المفكرة كمسؤول (مطلوب امتيازات المسؤول لحفظ الملف)، ثم افتح ملف المضيفين الموجود في
C:\Windows\System32\Drivers\etc.
أضف الإدخالات التالية إلى ملف المضيفين مع استبدال بالقيم المناسبة لجهازك:
<Device IP> login.<appliance name>.<DNS domain> <Device IP> management.<appliance name>.<DNS domain> <Device IP> <storage name>.blob.<appliance name>.<DNS domain>استخدم الصورة التالية كمرجع. احفظ ملف المضيفين.

قم بتنزيل البرنامج النصي Python المستخدم في هذا الإجراء.
إعداد بيئتك ل Azure CLI:
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
الخطوة 1: إعداد Azure CLI/Python على العميل
التحقق من ملف التعريف وتثبيت Azure CLI
تثبيت Azure CLI على العميل الخاص بك. في هذا المثال، تم تثبيت Azure CLI 2.0.80. للتحقق من إصدار Azure CLI، قم بتشغيل الأمر az --version .
فيما يلي نموذج إخراج من الأمر أعلاه:
PS C:\windows\system32> az --version azure-cli 2.0.80 command-modules-nspkg 2.0.3 core 2.0.80 nspkg 3.0.4 telemetry 1.0.4 Extensions: azure-cli-iot-ext 0.7.1 Python location 'C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe' Extensions directory 'C:\.azure\cliextensions' Python (Windows) 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 02:47:15) [MSC v.1900 32 bit (Intel)] Legal docs and information: aka.ms/AzureCliLegal Your CLI is up-to-date. Please let us know how we are doing: https://aka.ms/clihats PS C:\windows\system32>إذا لم يكن لديك Azure CLI، فقم بتنزيل Azure CLI وتثبيته على Windows. يمكنك تشغيل Azure CLI باستخدام موجه أوامر Windows أو من خلال Windows PowerShell.
دون ملاحظة عن موقع Python الخاص ب CLI. تحتاج إلى موقع Python لتحديد موقع مخزن شهادات الجذر الموثوق به ل Azure CLI.
لتشغيل نموذج البرنامج النصي المستخدم في هذه المقالة، ستحتاج إلى إصدارات مكتبة Python التالية:
azure-common==1.1.23 azure-mgmt-resource==2.1.0 azure-mgmt-network==2.7.0 azure-mgmt-compute==5.0.0 azure-mgmt-storage==1.5.0 azure-storage-blob==1.2.0rc1 haikunator msrestazure==0.6.2لتثبيت الإصدارات، قم بتشغيل الأمر التالي:
.\python.exe -m pip install haikunatorيظهر إخراج العينة التالي تثبيت Haikunator:
PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> .\python.exe -m pip install haikunator Collecting haikunator Downloading https://files.pythonhosted.org/packages/43/fa/130968f1a1bb1461c287b9ff35c630460801783243acda2cbf3a4c5964a5/haikunator-2.1.0-py2.py3-none-any.whl Installing collected packages: haikunator Successfully installed haikunator-2.1.0 You are using pip version 10.0.1, however version 20.0.1 is available. You should consider upgrading using the 'python -m pip install --upgrade pip' command. PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>يظهر إخراج العينة التالي تثبيت pip ل
msrestazure:PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> .\python.exe -m pip install msrestazure==0.6.2 Requirement already satisfied: msrestazure==0.6.2 in c:\program files (x86)\microsoft sdks\azure\cli2\lib\site-packages (0.6.2) Requirement already satisfied: msrest<2.0.0,>=0.6.0 in c:\program files (x86)\microsoft sdks\azure\cli2\lib\site-packages (from msrestazure==0.6.2) (0.6.10) === CUT =========================== CUT ================================== Requirement already satisfied: cffi!=1.11.3,>=1.8 in c:\program files (x86)\microsoft sdks\azure\cli2\lib\site-packages (from cryptography>=1.1.0->adal<2.0.0,>=0.6.0->msrestazure==0.6.2) (1.13.2) Requirement already satisfied: pycparser in c:\program files (x86)\microsoft sdks\azure\cli2\lib\site-packages (from cffi!=1.11.3,>=1.8->cryptography>=1.1.0->adal<2.0.0,>=0.6.0->msrestazure==0.6.2) (2.18) You are using pip version 10.0.1, however version 20.0.1 is available. You should consider upgrading using the 'python -m pip install --upgrade pip' command. PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>
الثقة في شهادة جذر Azure Stack Edge Pro CA
ابحث عن موقع الشهادة على جهازك. قد يختلف الموقع استنادا إلى المكان الذي قمت بتثبيته
az cli. تشغيل Windows PowerShell كمسؤول. قم بالتبديل إلى المسار حيثaz cliتم تثبيت Python:C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe.للحصول على موقع الشهادة، اكتب الأمر التالي:
.\python -c "import certifi; print(certifi.where())"يقوم cmdlet بإرجاع موقع الشهادة، كما هو موضح أدناه:
PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> .\python -c "import certifi; print(certifi.where())" C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\certifi\cacert.pem PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>دون ملاحظة عن هذا الموقع حيث ستستخدمه لاحقا -
C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\certifi\cacert.pemثق في شهادة جذر Azure Stack Edge Pro CA عن طريق إلحاقها بشهادة Python الموجودة. ستوفر المسار إلى المكان الذي حفظت فيه شهادة PEM في وقت سابق.
$pemFile = "<Path to the pem format certificate>"مسار مثال سيكون "C:\VM-scripts\rootteam3device.pem"
ثم اكتب سلسلة الأوامر التالية في Windows PowerShell:
$root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $root.Import($pemFile) Write-Host "Extracting required information from the cert file" $md5Hash = (Get-FileHash -Path $pemFile -Algorithm MD5).Hash.ToLower() $sha1Hash = (Get-FileHash -Path $pemFile -Algorithm SHA1).Hash.ToLower() $sha256Hash = (Get-FileHash -Path $pemFile -Algorithm SHA256).Hash.ToLower() $issuerEntry = [string]::Format("# Issuer: {0}", $root.Issuer) $subjectEntry = [string]::Format("# Subject: {0}", $root.Subject) $labelEntry = [string]::Format("# Label: {0}", $root.Subject.Split('=')[-1]) $serialEntry = [string]::Format("# Serial: {0}", $root.GetSerialNumberString().ToLower()) $md5Entry = [string]::Format("# MD5 Fingerprint: {0}", $md5Hash) $sha1Entry= [string]::Format("# SHA1 Fingerprint: {0}", $sha1Hash) $sha256Entry = [string]::Format("# SHA256 Fingerprint: {0}", $sha256Hash) $certText = (Get-Content -Path $pemFile -Raw).ToString().Replace("`r`n","`n") $rootCertEntry = "`n" + $issuerEntry + "`n" + $subjectEntry + "`n" + $labelEntry + "`n" + ` $serialEntry + "`n" + $md5Entry + "`n" + $sha1Entry + "`n" + $sha256Entry + "`n" + $certText Write-Host "Adding the certificate content to Python Cert store" Add-Content "${env:ProgramFiles(x86)}\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem" $rootCertEntry Write-Host "Python Cert store was updated to allow the Azure Stack Edge Pro CA root certificate"
الاتصال ب Azure Stack Edge Pro
سجل بيئة Azure Stack Edge Pro الخاصة بك عن طريق تشغيل الأمر az cloud register .
في بعض السيناريوهات، يتم توجيه الاتصال بالإنترنت الصادر المباشر من خلال وكيل أو جدار حماية، والذي يفرض اعتراض SSL. في هذه الحالات،
az cloud registerيمكن أن يفشل الأمر مع وجود خطأ مثل "غير قادر على الحصول على نقاط النهاية من السحابة". للتغلب على هذا الخطأ، قم بتعيين متغيرات البيئة التالية في Windows PowerShell:$ENV:AZURE_CLI_DISABLE_CONNECTION_VERIFICATION = 1 $ENV:ADAL_PYTHON_SSL_NO_VERIFY = 1تعيين متغيرات البيئة للبرنامج النصي لنقطة نهاية Azure Resource Manager، والموقع حيث يتم إنشاء الموارد والمسار إلى مكان VHD المصدر. يتم إصلاح موقع الموارد عبر جميع أجهزة Azure Stack Edge Pro ويتم تعيينه إلى
dbelocal. تحتاج أيضا إلى تحديد بادئات العنوان وعنوان IP الخاص. جميع متغيرات البيئة التالية هي قيم تستند إلى قيمك باستثناءAZURE_RESOURCE_LOCATION، والتي يجب ترميزها إلى"dbelocal".$ENV:ARM_ENDPOINT = "https://management.team3device.teatraining1.com" $ENV:AZURE_RESOURCE_LOCATION = "dbelocal" $ENV:VHD_FILE_PATH = "C:\Downloads\Ubuntu1604\Ubuntu13.vhd" $ENV:ADDRESS_PREFIXES = "5.5.0.0/16" $ENV:PRIVATE_IP_ADDRESS = "5.5.174.126"تسجيل البيئة الخاصة بك. استخدم المعلمات التالية عند تشغيل az cloud register:
قيمة الوصف مثال اسم البيئة اسم البيئة التي تحاول الاتصال بها أدخل اسما، على سبيل المثال، aze-environنقطة نهاية Resource Manager عنوان URL هذا هو https://Management.<appliancename><dnsdomain>.
للحصول على عنوان URL هذا، انتقل إلى صفحة الأجهزة في واجهة مستخدم الويب المحلية لجهازك.على سبيل المثال، https://management.team3device.teatraining1.comaz cloud register -n <environmentname> --endpoint-resource-manager "https://management.<appliance name>.<DNS domain>"يظهر التالي نموذج استخدام الأمر أعلاه:
PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> az cloud register -n az-new-env --endpoint-resource-manager "https://management.team3device.teatraining1.com"تعيين البيئة النشطة باستخدام الأمر التالي:
az cloud set -n <EnvironmentName>يظهر التالي نموذج استخدام الأمر أعلاه:
PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> az cloud set -n az-new-env Switched active cloud to 'az-new-env'. Use 'az login' to log in to this cloud. Use 'az account set' to set the active subscription. PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>سجل الدخول إلى بيئة Azure Stack Edge Pro باستخدام الأمر az login . يمكنك تسجيل الدخول إلى بيئة Azure Stack Edge Pro إما كمستخدم أو ككيان خدمة.
اتبع هذه الخطوات لتسجيل الدخول كمستخدم:
يمكنك إما تحديد اسم المستخدم وكلمة المرور مباشرة داخل
az loginالأمر، أو المصادقة باستخدام مستعرض. يجب القيام بهذا الأخير إذا تم تمكين مصادقة متعددة العوامل في حسابك.يوضح التالي استخدام عينة من
az login:PS C:\Certificates> az login -u EdgeARMuserبعد استخدام أمر تسجيل الدخول، تتم مطالبتك بكلمة مرور. توفير كلمة مرور Azure Resource Manager.
يظهر التالي عينة الإخراج لتسجيل الدخول الناجح بعد توفير كلمة المرور:
PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> az login -u EdgeARMuser Password: [ { "cloudName": "az-new-env", "id": "A4257FDE-B946-4E01-ADE7-674760B8D1A3", "isDefault": true, "name": "Default Provider Subscription", "state": "Enabled", "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "user": { "name": "EdgeArmUser@localhost", "type": "user" } } ] PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>دون القيم
idوtenantIdلأن هذه القيم تتوافق مع معرف اشتراك Azure Resource Manager ومعرف مستأجر Azure Resource Manager على التوالي وسيتم استخدامها في الخطوة اللاحقة.يجب تعيين متغيرات البيئة التالية للعمل كخدمة أساسية:
$ENV:ARM_TENANT_ID = "aaaabbbb-0000-cccc-1111-dddd2222eeee" $ENV:ARM_CLIENT_ID = "cbd868c5-7207-431f-8d16-1cb144b50971" $ENV:ARM_CLIENT_SECRET - "<Your Azure Resource Manager password>" $ENV:ARM_SUBSCRIPTION_ID = "<Your subscription ID>"معرف عميل Azure Resource Manager الخاص بك مضمن في التعليمات البرمجية. معرف مستأجر Azure Resource Manager ومعرف اشتراك Azure Resource Manager موجودان في إخراج الأمر الذي
az loginقمت بتشغيله سابقا. سر عميل Azure Resource Manager هو كلمة مرور Azure Resource Manager التي قمت بتعيينها.لمزيد من المعلومات، راجع كلمة مرور Azure Resource Manager.
غير ملف التعريف إلى الإصدار 2019-03-01-hybrid. لتغيير إصدار ملف التعريف، قم بتشغيل الأمر التالي:
az cloud update --profile 2019-03-01-hybridيوضح التالي استخدام عينة من
az cloud update:PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> az cloud update --profile 2019-03-01-hybrid PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>
الخطوة 2: إنشاء جهاز ظاهري
يتم توفير برنامج نصي Python لك لإنشاء جهاز ظاهري. اعتمادا على ما إذا كنت قد سجلت الدخول كمستخدم أو تم تعيينه كخدمة أساسية، يأخذ البرنامج النصي الإدخال وفقا لذلك وينشئ جهازا ظاهريا.
- تشغيل البرنامج النصي Python من نفس الدليل حيث يتم تثبيت Python.
.\python.exe example_dbe_arguments_name_https.py cli
عند تشغيل البرنامج النصي، يستغرق تحميل VHD من 20 إلى 30 دقيقة. لعرض تقدم عملية التحميل، يمكنك استخدام Azure Storage Explorer أو AzCopy.
فيما يلي عينة إخراج لتشغيل ناجح للبرنامج النصي. يقوم البرنامج النصي بإنشاء كافة الموارد داخل مجموعة موارد، ويستخدم هذه الموارد لإنشاء جهاز ظاهري، وأخيرا يحذف مجموعة الموارد بما في ذلك جميع الموارد التي أنشأها.
PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> .\python.exe example_dbe_arguments_name_https.py cli Create Resource Group Create a storage account Uploading to Azure Stack Storage as blob: ubuntu13.vhd Listing blobs... ubuntu13.vhd VM image resource id: /subscriptions/.../resourceGroups/azure-sample-group-virtual-machines118/providers/Microsoft.Compute/images/UbuntuImage Create Vnet Create Subnet Create NIC Creating Linux Virtual Machine Tag Virtual Machine Create (empty) managed Data Disk Get Virtual Machine by Name Attach Data Disk Detach Data Disk Deallocating the VM (to prepare for a disk resize) Update OS disk size Start VM Restart VM Stop VM List VMs in subscription VM: VmName118 List VMs in resource group VM: VmName118 Delete VM All example operations completed successfully! Delete Resource Group Deleted: azure-sample-group-virtual-machines118 PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2>