نشر الأجهزة الظاهرية على جهاز Azure Stack Edge عبر Azure PowerShell

ينطبق على:نعم ل Pro GPU SKUAzure Stack Edge Pro - GPUنعم ل Pro 2 SKUAzure Stack Edge Pro 2نعم ل Pro R SKUAzure Stack Edge Pro Rنعم ل Mini R SKUAzure Stack Edge Mini R

توضح هذه المقالة كيفية إنشاء جهاز ظاهري (VM) وإدارته على جهاز Azure Stack Edge باستخدام Azure PowerShell.

سير عمل توزيع الجهاز الظاهري

سير عمل التوزيع عالي المستوى لتوزيع الجهاز الظاهري كما يلي:

  1. اتصل ب Azure Resource Manager المحلي لجهازك.
  2. تحديد الاشتراك المضمن على الجهاز.
  3. إحضار صورة الجهاز الظاهري.
  4. إنشاء مجموعة موارد في الاشتراك المضمن. تحتوي مجموعة الموارد على الجهاز الظاهري وجميع الموارد ذات الصلة.
  5. إنشاء حساب تخزين محلي على الجهاز لتخزين VHD المستخدم لإنشاء صورة جهاز ظاهري.
  6. تحميل صورة مصدر Windows/Linux إلى حساب التخزين لإنشاء قرص مدار.
  7. استخدم القرص المدار لإنشاء صورة جهاز ظاهري.
  8. تمكين الحساب على منفذ جهاز لإنشاء مفتاح ظاهري.
  9. يؤدي هذا إلى إنشاء شبكة ظاهرية باستخدام المفتاح الظاهري المرفق بالمنفذ الذي قمت بتمكين الحساب عليه.
  10. إنشاء جهاز ظاهري باستخدام صورة الجهاز الظاهري التي تم إنشاؤها مسبقا والشبكة الظاهرية وواجهة (واجهات) الشبكة الظاهرية للاتصال داخل الشبكة الظاهرية وتعيين عنوان IP عام للوصول إلى الجهاز الظاهري عن بعد. قم بتضمين أقراص البيانات بشكل اختياري لتوفير المزيد من التخزين لجهازك الظاهري.

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

قبل أن تتمكن من نشر الأجهزة الظاهرية على جهاز Azure Stack Edge، يجب عليك تكوين العميل للاتصال بالجهاز عبر Azure Resource Manager عبر Azure PowerShell. للحصول على إرشادات مفصلة، راجع الاتصال ب Azure Resource Manager على جهاز Azure Stack Edge.

تأكد من أنه يمكنك استخدام الخطوات التالية للوصول إلى الجهاز من العميل. لقد قمت بالفعل بهذا التكوين عند الاتصال ب Azure Resource Manager، والآن تتحقق من نجاح التكوين.

  1. تحقق من أن اتصال Azure Resource Manager يعمل عن طريق تشغيل الأمر التالي:

    Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>"
    
  2. لاستدعاء واجهات برمجة تطبيقات الجهاز المحلي للمصادقة، أدخل:

    login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d
    

    للاتصال عبر Azure Resource Manager، قم بتوفير اسم المستخدم EdgeArmUser وكلمة المرور الخاصة بك.

  3. إذا قمت بتكوين حساب ل Kubernetes، يمكنك تخطي هذه الخطوة. وإلا، فتأكد من تمكين واجهة شبكة للحوسبة من خلال القيام بما يلي:

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

    لقطة شاشة لجزء إعدادات شبكة تكوين الحساب.

    جـ. ضمن تمكين للحساب على واجهة الشبكة، حدد نعم. سيقوم Azure Stack Edge بإنشاء وإدارة مفتاح ظاهري يتوافق مع واجهة الشبكة هذه. لا تدخل عناوين IP محددة ل Kubernetes في الوقت الحالي. قد يستغرق الأمر عدة دقائق لتمكين الحساب.

    إشعار

    إذا كنت تقوم بإنشاء GPU VMs، فحدد واجهة شبكة متصلة بالإنترنت. يمكنك القيام بذلك من تثبيت ملحق GPU على جهازك.

الاستعلام عن اشتراك مضمن على الجهاز

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

يحتوي الاشتراك على جميع الموارد المطلوبة لإنشاء الجهاز الظاهري.

هام

يتم إنشاء الاشتراك عند تمكين الأجهزة الظاهرية من مدخل Microsoft Azure، ويعيش محليا على جهازك.

يتم استخدام الاشتراك لنشر الأجهزة الظاهرية.

  1. لسرد الاشتراك، قم بتشغيل الأمر التالي:

    Get-AzSubscription
    

    فيما يلي بعض أمثلة الإخراج:

    PS C:\WINDOWS\system32> Get-AzSubscription
    
    Name                          Id                                   TenantId
    ----                          --                                   --------
    Default Provider Subscription ...                                  ...
    
    
    PS C:\WINDOWS\system32>
    
  2. احصل على قائمة بموفري الموارد المسجلين الذين يعملون على الجهاز. تتضمن القائمة عادة الحوسبة والشبكة والتخزين.

    Get-AzResourceProvider
    

    إشعار

    يتم تسجيل موفري الموارد مسبقا، ولا يمكن تعديلهم أو تغييرهم.

    فيما يلي بعض أمثلة الإخراج:

    PS C:\WINDOWS\system32>  Get-AzResourceProvider
    
    ProviderNamespace : Microsoft.AzureBridge
    RegistrationState : Registered
    ResourceTypes     : {locations, operations, locations/ingestionJobs}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Compute
    RegistrationState : Registered
    ResourceTypes     : {virtualMachines, virtualMachines/extensions, locations, operations...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Network
    RegistrationState : Registered
    ResourceTypes     : {operations, locations, locations/operations, locations/usages...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Resources
    RegistrationState : Registered
    ResourceTypes     : {tenants, locations, providers, checkresourcename...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Storage
    RegistrationState : Registered
    ResourceTypes     : {storageaccounts, storageAccounts/blobServices, storageAccounts/tableServices,
                        storageAccounts/queueServices...}
    Locations         : {DBELocal}
    
    PS C:\WINDOWS\system32>
    

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

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

هام

يتم إنشاء جميع الموارد في نفس موقع الجهاز، ويتم تعيين الموقع إلى DBELocal.

  1. تعيين بعض المعلمات.

    $ResourceGroupName = "<Resource group name>" 
    
  2. إنشاء مجموعة موارد للموارد التي تقوم بإنشائها للجهاز الظاهري.

    New-AzResourceGroup -Name $ResourceGroupName -Location DBELocal
    

    فيما يلي بعض أمثلة الإخراج:

    PS C:\WINDOWS\system32> New-AzResourceGroup -Name myaseazrg -Location DBELocal
    
    ResourceGroupName : myaseazrg
    Location          : dbelocal
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/.../resourceGroups/myaseazrg
    
    PS C:\WINDOWS\system32>
    

إنشاء حساب تخزين محلي

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

قبل إنشاء حساب تخزين محلي، يجب تكوين العميل للاتصال بالجهاز عبر Azure Resource Manager عبر Azure PowerShell. للحصول على إرشادات مفصلة، راجع الاتصال ب Azure Resource Manager على جهاز Azure Stack Edge.

  1. تعيين بعض المعلمات.

    $StorageAccountName = "<Storage account name>"    
    
  2. إنشاء حساب تخزين محلي جديد على جهازك.

    New-AzStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName -Location DBELocal -SkuName Standard_LRS
    

    إشعار

    باستخدام Azure Resource Manager، يمكنك إنشاء حسابات تخزين محلية فقط، مثل التخزين الزائد محليا (قياسي أو متميز). لإنشاء حسابات تخزين متدرجة، راجع البرنامج التعليمي: نقل البيانات عبر حسابات التخزين باستخدام Azure Stack Edge Pro مع GPU.

    فيما يلي مثال على ذلك:

    PS C:\WINDOWS\system32> New-AzStorageAccount -Name myaseazsa -ResourceGroupName myaseazrg -Location DBELocal -SkuName Standard_LRS
    
    StorageAccountName ResourceGroupName PrimaryLocation SkuName      Kind    AccessTier CreationTime
    ------------------ ----------------- --------------- -------      ----    ---------- ------------
    myaseazsa          myaseazrg         DBELocal        Standard_LRS Storage            6/10/2021 11:45...
    
    PS C:\WINDOWS\system32>
    

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

Get-AzStorageAccountKey

فيما يلي مثال على ذلك:

PS C:\WINDOWS\system32> Get-AzStorageAccountKey
    
cmdlet Get-AzStorageAccountKey at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
ResourceGroupName: myaseazrg
Name: myaseazsa
    
KeyName    Value                                                                                       Permissions
-------    -----                                                                                       ------
key1       gv3OF57tuPDyzBNc1M7fhil2UAiiwnhTT6zgiwE3TlF/CD217Cvw2YCPcrKF47joNKRvzp44leUe5HtVkGx8RQ==    Full
key2       kmEynIs3xnpmSxWbU41h5a7DZD7v4gGV3yXa2NbPbmhrPt10+QmE5PkOxxypeSqbqzd9si+ArNvbsqIRuLH2Lw==    Full
    
PS C:\WINDOWS\system32>

إضافة blob URI إلى ملف المضيف

لقد أضفت بالفعل blob URI في ملف المضيفين للعميل الذي تستخدمه للاتصال ب Azure Blob Storage في تعديل ملف المضيف لتحليلاسم نقطة النهاية للاتصال ب Azure Resource Manager على جهاز Azure Stack Edge. تم استخدام هذا الإدخال لإضافة blob URI:

<Device IP address> <storage name>.blob.<appliance name>.<dnsdomain>

تثبيت الشهادات

إذا كنت تستخدم HTTPS، فستحتاج إلى تثبيت الشهادات المناسبة على جهازك. هنا، يمكنك تثبيت شهادة نقطة نهاية كائن ثنائي كبير الحجم. لمزيد من المعلومات، راجع استخدام الشهادات مع Azure Stack Edge Pro مع جهاز GPU.

تحميل VHD

انسخ أي صور قرص لاستخدامها في الكائنات الثنائية كبيرة الحجم للصفحة في حساب التخزين المحلي الذي قمت بإنشائه سابقا. يمكنك استخدام أداة مثل AzCopy لتحميل القرص الثابت الظاهري (VHD) إلى حساب التخزين.

استخدم الأوامر التالية مع AzCopy 10:

  1. تعيين بعض المعلمات بما في ذلك الإصدار المناسب من واجهات برمجة التطبيقات ل AzCopy. في هذا المثال، تم استخدام AzCopy 10.

    $Env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2019-07-07"    
    $ContainerName = <Container name>
    $ResourceGroupName = <Resource group name>
    $StorageAccountName = <Storage account name>
    $VHDPath = "Full VHD Path"
    $VHDFile = <VHD file name>
    
  2. انسخ VHD من المصدر (في هذه الحالة، النظام المحلي) إلى حساب التخزين الذي قمت بإنشائه على جهازك في الخطوة السابقة.

    $StorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value
    $blobendpoint = (Get-AzEnvironment -Name Environment Name).StorageEndpointSuffix
    $StorageAccountContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -Endpoint $blobendpoint
    <Create the container if it does not exist>
    $containerName = "con1"
    $container = New-AzStorageContainer -Name $containerName -Context $StorageAccountContext -Permission Container
    $StorageAccountSAS = New-AzStorageAccountSASToken -Service Blob -ResourceType Container,Service,Object -Permission "acdlrw" -Context $StorageAccountContext -Protocol HttpsOnly
    $endPoint = (Get-AzStorageAccount -name $StorageAccountName -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob
    <Path to azcopy.exe> cp "$VHDPath\$VHDFile" "$endPoint$ContainerName$StorageAccountSAS"    
    

    فيما يلي مثال على ذلك:

    PS C:\windows\system32> $ContainerName = "testcontainer1"
    PS C:\windows\system32> $ResourceGroupName = "myaseazrg"
    PS C:\windows\system32> $StorageAccountName = "myaseazsa"
    PS C:\windows\system32> $VHDPath = "C:\Users\alkohli\Downloads\Ubuntu1604"           
    PS C:\windows\system32> $VHDFile = "ubuntu13.vhd"
    
    PS C:\windows\system32> $StorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value
    PS C:\windows\system32> $endPoint = (Get-AzStorageAccount -name $StorageAccountName -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob
    PS C:\windows\system32> $StorageAccountContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -Endpoint $endpoint
    PS C:\windows\system32> $StorageAccountSAS = New-AzStorageAccountSASToken -Service Blob -ResourceType Container,Service,Object -Permission "acdlrw" -Context $StorageAccountContext -Protocol HttpsOnly
    
    PS C:\windows\system32> C:\azcopy\azcopy_windows_amd64_10.10.0\azcopy.exe cp "$VHDPath\$VHDFile" "$endPoint$ContainerName$StorageAccountSAS"
    INFO: Scanning...
    INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support
    
    Job 72a5e3dd-9210-3e43-6691-6bebd4875760 has started
    Log file is located at: C:\Users\alkohli\.azcopy\72a5e3dd-9210-3e43-6691-6bebd4875760.log
    
    INFO: azcopy.exe: A newer version 10.11.0 is available to download
    

إنشاء قرص مدار من VHD

إنشاء قرص مدار من VHD الذي تم تحميله.

  1. تعيين بعض المعلمات.

    $DiskName = "<Managed disk name>"
    $HyperVGeneration = "<Generation of the image: V1 or V2>"
    
  2. إنشاء قرص مدار من VHD الذي تم تحميله. للحصول على عنوان URL المصدر ل VHD الخاص بك، انتقل إلى الحاوية في حساب التخزين الذي يحتوي على VHD في Storage Explorer. حدد VHD، وانقر بزر الماوس الأيمن ثم حدد Properties. في مربع الحوار خصائص Blob، حدد URI.

    $StorageAccountId = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id    
    $DiskConfig = New-AzDiskConfig -Location DBELocal -HyperVGeneration $HyperVGeneration -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "Source URL for your VHD"
    New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $DiskConfig
    

    فيما يلي مثال على الإخراج:.

    PS C:\WINDOWS\system32> $DiskName = "myazmd"
    PS C:\WINDOWS\system32  $HyperVGeneration = "V1"
    PS C:\WINDOWS\system32> $StorageAccountId = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id
    PS C:\WINDOWS\system32> $DiskConfig = New-AzDiskConfig -Location DBELocal -HyperVGeneration $HyperVGeneration -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "https://myaseazsa.blob.myasegpu.wdshcsso.com/testcontainer1/ubuntu13.vhd"
    PS C:\WINDOWS\system32> New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $DiskConfig
    
    ResourceGroupName            : myaseazrg
    ManagedBy                    :
    Sku                          : Microsoft.Azure.Management.Compute.Models.DiskSku
    Zones                        :
    TimeCreated                  : 6/24/2021 12:19:56 PM
    OsType                       :
    HyperVGeneration             : V1
    CreationData                 : Microsoft.Azure.Management.Compute.Models.CreationDat
                                   a
    DiskSizeGB                   : 30
    DiskSizeBytes                : 32212254720
    UniqueId                     : 53743801-cbf2-4d2f-acb4-971d037a9395
    EncryptionSettingsCollection :
    ProvisioningState            : Succeeded
    DiskIOPSReadWrite            : 500
    DiskMBpsReadWrite            : 60
    DiskState                    : Unattached
    Encryption                   : Microsoft.Azure.Management.Compute.Models.Encryption
    Id                           : /subscriptions/.../r
                                   esourceGroups/myaseazrg/providers/Microsoft.Compute/d
                                   isks/myazmd
    Name                         : myazmd
    Type                         : Microsoft.Compute/disks
    Location                     : DBELocal
    Tags                         : {}
    
    PS C:\WINDOWS\system32>
    

إنشاء صورة جهاز ظاهري من القرص المدار

ستقوم الآن بإنشاء صورة جهاز ظاهري من القرص المدار.

  1. تعيين بعض المعلمات.

    $DiskSize = "<Size greater than or equal to size of source managed disk>"
    $OsType = "<linux or windows>" 
    $ImageName = "<Image name>"
    
  2. إنشاء صورة جهاز ظاهري. أنواع نظام التشغيل المدعومة هي Linux وWindows.

    $imageConfig = New-AzImageConfig -Location DBELocal -HyperVGeneration $hyperVGeneration 
    $ManagedDiskId = (Get-AzDisk -Name $DiskName -ResourceGroupName $ResourceGroupName).Id
    Set-AzImageOsDisk -Image $imageConfig -OsType $OsType -OsState 'Generalized' -DiskSizeGB $DiskSize -ManagedDiskId $ManagedDiskId 
    New-AzImage -Image $imageConfig -ImageName $ImageName -ResourceGroupName $ResourceGroupName  
    

    فيما يلي مثال على الإخراج.

    PS C:\WINDOWS\system32> $OsType = "linux"
    PS C:\WINDOWS\system32> $ImageName = "myaseazlinuxvmimage"
    PS C:\WINDOWS\system32> $DiskSize = 35
    PS C:\WINDOWS\system32> $imageConfig = New-AzImageConfig -Location DBELocal
    PS C:\WINDOWS\system32> $ManagedDiskId = (Get-AzDisk -Name $DiskName -ResourceGroupName $ResourceGroupName).Id
    PS C:\WINDOWS\system32> Set-AzImageOsDisk -Image $imageConfig -OsType $OsType -OsState 'Generalized' -DiskSizeGB $DiskSize -ManagedDiskId $ManagedDiskId
    
    ResourceGroupName    :
    SourceVirtualMachine :
    StorageProfile       : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile
    ProvisioningState    :
    HyperVGeneration     : V1
    Id                   :
    Name                 :
    Type                 :
    Location             : DBELocal
    Tags                 :
    
    PS C:\WINDOWS\system32> New-AzImage -Image $imageConfig -ImageName $ImageName -ResourceGroupName $ResourceGroupName
    
    ResourceGroupName    : myaseazrg
    SourceVirtualMachine :
    StorageProfile       : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile
    ProvisioningState    : Succeeded
    HyperVGeneration     : V1
    Id                   : /subscriptions/.../resourceG
                           roups/myaseazrg/providers/Microsoft.Compute/images/myaseazlin
                           uxvmimage
    Name                 : myaseazlinuxvmimage
    Type                 : Microsoft.Compute/images
    Location             : dbelocal
    Tags                 : {}
    
    PS C:\WINDOWS\system32> 
    

إنشاء الجهاز الظاهري الخاص بك باستخدام الموارد التي تم إنشاؤها مسبقا

قبل إنشاء الجهاز الظاهري ونشره، يجب إنشاء شبكة ظاهرية واحدة وربط واجهة شبكة ظاهرية بها.

هام

يتم تطبيق القواعد التالية:

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

الاستعلام عن الشبكة الظاهرية التي تم إنشاؤها تلقائيا

عند تمكين الحساب من واجهة المستخدم المحلية لجهازك، يتم إنشاء شبكة ظاهرية تسمى ASEVNET تلقائيا، ضمن ASERG مجموعة الموارد.

استخدم الأمر التالي للاستعلام عن الشبكة الظاهرية الموجودة:

$ArmVn = Get-AzVirtualNetwork -Name ASEVNET -ResourceGroupName ASERG 

إنشاء بطاقة واجهة شبكة ظاهرية

يمكنك إنشاء بطاقة واجهة شبكة ظاهرية باستخدام معرف الشبكة الفرعية للشبكة الظاهرية.

  1. تعيين بعض المعلمات.

    $IpConfigName = "<IP config name>"
    $NicName = "<Network interface name>"
    
  2. إنشاء واجهة شبكة ظاهرية.

    $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id 
    $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig    
    

    بشكل افتراضي، يتم تعيين IP ديناميكيا إلى واجهة الشبكة الخاصة بك من الشبكة الممكنة للحساب. -PrivateIpAddress parameter استخدم إذا كنت تقوم بتخصيص IP ثابت لواجهة الشبكة الخاصة بك.

    فيما يلي مثال على ذلك:

    PS C:\WINDOWS\system32> $IpConfigName = "myazipconfig1"
    PS C:\WINDOWS\system32> $NicName = "myaznic1"
    PS C:\WINDOWS\system32> $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id 
    PS C:\WINDOWS\system32> $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id
    PS C:\WINDOWS\system32> $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig
    PS C:\WINDOWS\system32> $Nic
    
    Name                        : myaznic1
    ResourceGroupName           : myaseazrg
    Location                    : dbelocal
    Id                          : /subscriptions/.../re
                                  sourceGroups/myaseazrg/providers/Microsoft.Network/net
                                  workInterfaces/myaznic1
    Etag                        : W/"0b20057b-2102-4f34-958b-656327c0fb1d"
    ResourceGuid                : e7d4131f-6f01-4492-9d4c-a8ff1af7244f
    ProvisioningState           : Succeeded
    Tags                        :
    VirtualMachine              : null
    IpConfigurations            : [
                                    {
                                      "Name": "myazipconfig1",
                                      "Etag":
                                  "W/\"0b20057b-2102-4f34-958b-656327c0fb1d\"",
                                      "Id": "/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.
                                  Network/networkInterfaces/myaznic1/ipConfigurations/my
                                  azipconfig1",
                                      "PrivateIpAddress": "10.126.76.60",
                                      "PrivateIpAllocationMethod": "Dynamic",
                                      "Subnet": {
                                        "Delegations": [],
                                        "Id": "/subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Ne
                                  twork/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet",
                                        "ServiceAssociationLinks": []
                                      },
                                      "ProvisioningState": "Succeeded",
                                      "PrivateIpAddressVersion": "IPv4",
                                      "LoadBalancerBackendAddressPools": [],
                                      "LoadBalancerInboundNatRules": [],
                                      "Primary": true,
                                      "ApplicationGatewayBackendAddressPools": [],
                                      "ApplicationSecurityGroups": []
                                    }
                                  ]
    DnsSettings                 : {
                                    "DnsServers": [],
                                    "AppliedDnsServers": [],
                                    "InternalDomainNameSuffix": "auwlfcx0dhxurjgisct43fc
                                  ywb.a--x.internal.cloudapp.net"
                                  }
    EnableIPForwarding          : False
    EnableAcceleratedNetworking : False
    NetworkSecurityGroup        : null
    Primary                     :
    MacAddress                  : 001DD84A58D1
    
    PS C:\WINDOWS\system32>
    

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

New-AzPublicIPAddress -Name <Public IP> -ResourceGroupName <ResourceGroupName> -AllocationMethod Static -Location DBELocal
$publicIP = (Get-AzPublicIPAddress -Name <Public IP> -ResourceGroupName <Resource group name>).Id
$ipConfig = New-AzNetworkInterfaceIpConfig -Name <ConfigName> -PublicIpAddressId $publicIP -SubnetId $subNetId

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

يمكنك الآن استخدام صورة الجهاز الظاهري لإنشاء جهاز ظاهري وإرفاقه بالشبكة الظاهرية التي قمت بإنشائها سابقا.

  1. قم بتعيين اسم المستخدم وكلمة المرور لتسجيل الدخول إلى الجهاز الظاهري الذي تريد إنشاءه.

    $pass = ConvertTo-SecureString "<Password>" -AsPlainText -Force;
    $cred = New-Object System.Management.Automation.PSCredential("<Enter username>", $pass)
    

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

  2. تعيين المعلمات.

    $VmName = "<VM name>"
    $ComputerName = "<VM display name>"
    $OsDiskName = "<OS disk name>"
    
  3. إنشاء جهاز ظاهري VM.

    $VirtualMachine =  New-AzVMConfig -VmName $VmName -VMSize "Standard_D1_v2"
    
    $VirtualMachine =  Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $cred
    
    $VirtualMachine =  Set-AzVmOsDisk -VM $VirtualMachine -Name $OsDiskName -Caching "ReadWrite" -CreateOption "FromImage" -Linux -StorageAccountType Standard_LRS
    
    $nicID = (Get-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName).Id
    
    $VirtualMachine =  Add-AzVMNetworkInterface -Vm $VirtualMachine -Id $nicID
    
    $image = ( Get-AzImage -ResourceGroupName $ResourceGroupName -ImageName $ImageName).Id
    
    $VirtualMachine =  Set-AzVMSourceImage -VM $VirtualMachine -Id $image
    
    New-AzVM -ResourceGroupName $ResourceGroupName -Location DBELocal -VM $VirtualMachine -Verbose
    

    فيما يلي مثال على الإخراج.

    PS C:\WINDOWS\system32> $pass = ConvertTo-SecureString "Password1" -AsPlainText -Force;
    PS C:\WINDOWS\system32> $cred = New-Object System.Management.Automation.PSCredential("myazuser", $pass)
    PS C:\WINDOWS\system32> $VmName = "myazvm"
    >> $ComputerName = "myazvmfriendlyname"
    >> $OsDiskName = "myazosdisk1"
    PS C:\WINDOWS\system32> $VirtualMachine =  New-AzVMConfig -VmName $VmName -VMSize "Standard_D1_v2"
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $cred
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVmOsDisk -VM $VirtualMachine -Name $OsDiskName -Caching "ReadWrite" -CreateOption "FromImage" -Linux -StorageAccountType Standard_LRS
    PS C:\WINDOWS\system32> $nicID = (Get-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName).Id
    PS C:\WINDOWS\system32> $nicID/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.Network/networkInterfaces/myaznic1
    PS C:\WINDOWS\system32> $VirtualMachine =  Add-AzVMNetworkInterface -VM $VirtualMachine -Id $nicID
    PS C:\WINDOWS\system32> $image = ( Get-AzImage -ResourceGroupName $ResourceGroupName -ImageName $ImageName).Id
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVMSourceImage -VM $VirtualMachine -Id $image
    PS C:\WINDOWS\system32> New-AzVM -ResourceGroupName $ResourceGroupName -Location DBELocal -VM $VirtualMachine -Verbose
    WARNING: Since the VM is created using premium storage or managed disk, existing
    standard storage account, myaseazsa, is used for boot diagnostics.
    VERBOSE: Performing the operation "New" on target "myazvm".
    
    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK
    
  4. لمعرفة IP المعين للجهاز الظاهري الذي قمت بإنشائه، استعلم عن واجهة الشبكة الظاهرية التي قمت بإنشائها. حدد موقع ونسخ PrivateIPAddress IP للجهاز الظاهري الخاص بك. فيما يلي مثال على الإخراج.

    PS C:\WINDOWS\system32> $Nic
    
    Name                        : myaznic1
    ResourceGroupName           : myaseazrg
    Location                    : dbelocal
    Id                          : /subscriptions/.../re
                                  sourceGroups/myaseazrg/providers/Microsoft.Network/net
                                  workInterfaces/myaznic1
    Etag                        : W/"0b20057b-2102-4f34-958b-656327c0fb1d"
    ResourceGuid                : e7d4131f-6f01-4492-9d4c-a8ff1af7244f
    ProvisioningState           : Succeeded
    Tags                        :
    VirtualMachine              : null
    IpConfigurations            : [
                                    {
                                      "Name": "myazipconfig1",
                                      "Etag":
                                  "W/\"0b20057b-2102-4f34-958b-656327c0fb1d\"",
                                      "Id": "/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.
                                  Network/networkInterfaces/myaznic1/ipConfigurations/my
                                  azipconfig1",
                                      "PrivateIpAddress": "10.126.76.60",
                                      "PrivateIpAllocationMethod": "Dynamic",
                                      "Subnet": {
                                        "Delegations": [],
                                        "Id": "/subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Ne
                                  twork/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet",
                                        "ServiceAssociationLinks": []
                                      },
                                      "ProvisioningState": "Succeeded",
                                      "PrivateIpAddressVersion": "IPv4",
                                      "LoadBalancerBackendAddressPools": [],
                                      "LoadBalancerInboundNatRules": [],
                                      "Primary": true,
                                      "ApplicationGatewayBackendAddressPools": [],
                                      "ApplicationSecurityGroups": []
                                    }
                                  ]
    DnsSettings                 : {
                                    "DnsServers": [],
                                    "AppliedDnsServers": [],
                                    "InternalDomainNameSuffix": "auwlfcx0dhxurjgisct43fc
                                  ywb.a--x.internal.cloudapp.net"
                                  }
    EnableIPForwarding          : False
    EnableAcceleratedNetworking : False
    NetworkSecurityGroup        : null
    Primary                     :
    MacAddress                  : 001DD84A58D1
    
    PS C:\WINDOWS\system32>
    

الاتصال بـVM

اعتمادا على ما إذا كنت قد أنشأت جهازا ظاهريا يعمل بنظام Windows أو جهازا ظاهريا يعمل بنظام Linux، يمكن أن تكون إرشادات الاتصال مختلفة.

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

للاتصال بجهاز Linux الظاهري، قم بما يلي:

اتصل بالجهاز الظاهري باستخدام IP الخاص الذي مررته أثناء إنشاء الجهاز الظاهري.

  1. افتح جلسة SSH للاتصال بعنوان IP.

    ssh -l <username> <ip address>
    
  2. في المطالبة، قم بتوفير كلمة المرور التي استخدمتها عند إنشاء الجهاز الظاهري.

    إذا كنت بحاجة إلى توفير مفتاح SSH، فاستخدم هذا الأمر.

    ssh -i c:/users/Administrator/.ssh/id_rsa Administrator@5.5.41.236

    فيما يلي مثال على الإخراج عند الاتصال بالجهاز الظاهري:

    PS C:\WINDOWS\system32> ssh -l myazuser "10.126.76.60"
    The authenticity of host '10.126.76.60 (10.126.76.60)' can't be established.
    ECDSA key fingerprint is SHA256:V649Zbo58zAYMKreeP7M6w7Na0Yf9QPg4SM7JZVV0E4.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '10.126.76.60' (ECDSA) to the list of known hosts.
    myazuser@10.126.76.60's password:
    Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.18.0-1013-azure x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    
     System information disabled due to load higher than 1.0
    
      Get cloud support with Ubuntu Advantage Cloud Guest:
        http://www.ubuntu.com/business/services/cloud
    
    284 packages can be updated.
    192 updates are security updates. 
    
    The programs included with the Ubuntu system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    
    Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
    applicable law.
    
    To run a command as administrator (user "root"), use "sudo <command>".
    See "man sudo_root" for details.
    
    myazuser@myazvmfriendlyname:~$ client_loop: send disconnect: Connection reset
    PS C:\WINDOWS\system32>
    

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

$publicIp = Get-AzPublicIpAddress -Name $PublicIp -ResourceGroupName $ResourceGroupName

في هذه الحالة، IP العام هو نفس IP الخاص الذي قمت بتمريره أثناء إنشاء واجهة الشبكة الظاهرية.

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

للاتصال بجهاز ظاهري يعمل بنظام Windows، قم بما يلي:

اتصل بجهاز Windows الظاهري باستخدام بروتوكول سطح المكتب البعيد (RDP) عبر IP الذي قمت بتمريره أثناء إنشاء الجهاز الظاهري.

  1. على العميل الخاص بك، افتح RDP.

  2. انتقل إلى البدء، ثم أدخل mstsc.

  3. في جزء اتصال سطح المكتب البعيد، أدخل عنوان IP للجهاز الظاهري وبيانات اعتماد الوصول التي استخدمتها في ملف معلمات قالب الجهاز الظاهري. وبعد ذلك حدد Connect.

    لقطة شاشة لجزء اتصال سطح المكتب البعيد للاتصال عبر RDP بجهاز Windows الظاهري.

    إشعار

    قد تحتاج إلى الموافقة على الاتصال بجهاز غير موثوق به.

لقد قمت الآن بتسجيل الدخول إلى الجهاز الظاهري الذي يعمل على الجهاز.

إدارة الجهاز الظاهري

تصف الأقسام التالية بعض العمليات الشائعة التي يمكنك إنشاؤها على جهاز Azure Stack Edge Pro.

سرد الأجهزة الظاهرية التي تعمل على الجهاز

لإرجاع قائمة بجميع الأجهزة الظاهرية التي تعمل على جهاز Azure Stack Edge، قم بتشغيل هذا الأمر:

Get-AzVM -ResourceGroupName <String> -Name <String>

لمزيد من المعلومات حول أمر cmdlet هذا، راجع Get-AzVM.

تشغيل الجهاز الظاهري

لتشغيل جهاز ظاهري يعمل على جهازك، قم بتشغيل الأمر cmdlet التالي:

Start-AzVM [-Name] <String> [-ResourceGroupName] <String>

لمزيد من المعلومات حول أمر cmdlet هذا، راجع Start-AzVM.

إيقاف الجهاز الظاهري مؤقتا أو إيقاف تشغيله

لإيقاف أو إيقاف تشغيل جهاز ظاهري يعمل على جهازك، قم بتشغيل الأمر cmdlet التالي:

Stop-AzVM [-Name] <String> [-StayProvisioned] [-ResourceGroupName] <String>

لمزيد من المعلومات حول cmdlet هذا، راجع Stop-AzVM cmdlet.

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

لتغيير حجم جهاز ظاهري موجود، قم بتشغيل أوامر cmdlets التالية:

هام

قبل تغيير حجمه، أوقف الجهاز الظاهري بدون العلامة -StayProvisioned .

$vm = Get-AzVM [-Name] <String> [-ResourceGroupName] <String>

$vm.HardwareProfile.VmSize = <new size> - Example: "Standard_D3_v2"

$vm | Update-AzVM

إضافة قرص بيانات

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

Add-AzRmVMDataDisk -VM $VirtualMachine -Name "disk1" -VhdUri "https://contoso.blob.core.windows.net/vhds/diskstandard03.vhd" -LUN 0 -Caching ReadOnly -DiskSizeinGB 1 -CreateOption Empty 
 
Update-AzVM -ResourceGroupName "<Resource Group Name string>" -VM $VirtualMachine

حذف الجهاز الظاهري

لإزالة جهاز ظاهري من جهازك، قم بتشغيل cmdlet التالي:

Remove-AzVM [-Name] <String> [-ResourceGroupName] <String>

لمزيد من المعلومات حول cmdlet هذا، راجع Remove-AzVm cmdlet.

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

أوامر cmdlets ل Azure Resource Manager