نشر الخدمات السحابية (الدعم الموسع) باستخدام Azure PowerShell

توضح هذه المقالة كيفية استخدام الوحدة النمطية Az.CloudService Azure PowerShell لإنشاء نشر خدمات سحابة Azure (الدعم الموسع) الذي له أدوار متعددة (WebRole و WorkerRole).

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

أكمل الخطوات التالية كمتطلبات أساسية لإنشاء التوزيع باستخدام Azure PowerShell.

  1. راجع متطلبات النشر الأساسية للخدمات السحابية (الدعم الموسع) وأنشئ الموارد المطلوبة.

  2. تثبيت الوحدة النمطية Az.CloudService PowerShell:

    Install-Module -Name Az.CloudService 
    
  3. إنشاء مجموعة موارد جديدة. هذه الخطوة اختيارية إذا كنت تستخدم مجموعة موارد موجودة.

    New-AzResourceGroup -ResourceGroupName “ContosOrg” -Location “East US” 
    
  4. إنشاء حساب تخزين وحاوية في Azure لتخزين ملف الحزمة (.cspkg أو .zip) وملف التكوين (.cscfg) لنشر الخدمات السحابية (الدعم الموسع). يجب استخدام اسم فريد لاسم حساب التخزين. هذه الخطوة اختيارية إذا كنت تستخدم حساب تخزين موجود.

    $storageAccount = New-AzStorageAccount -ResourceGroupName “ContosOrg” -Name “contosostorageaccount” -Location “East US” -SkuName “Standard_RAGRS” -Kind “StorageV2” 
    $container = New-AzStorageContainer -Name “contosocontainer” -Context $storageAccount.Context -Permission Blob 
    

نشر Cloud Services (extended support)

لنشر الخدمات السحابية (الدعم الموسع)، استخدم أيا من خيارات PowerShell cmdlet التالية:

  • إنشاء نشر بسرعة باستخدام حساب تخزين

    • إدخال مجموعة المعلمات هذه ملف الحزمة (.cspkg أو .zip) وملف التكوين (.cscfg) وملف التعريف (.csdef) للتوزيع كمدخلات مع حساب التخزين.
    • ينشئ cmdlet ملف تعريف دور الخدمات السحابية (الدعم الموسع) وملف تعريف الشبكة وملف تعريف نظام التشغيل بأقل قدر من الإدخال.
    • لإدخال شهادة، يجب تحديد اسم key vault. يتم التحقق من صحة بصمة الشهادة في مخزن المفاتيح مقابل الشهادات التي تحددها في ملف التكوين (.cscfg) للتوزيع.
  • إنشاء نشر بسرعة باستخدام URI توقيع وصول مشترك

    • تقوم مجموعة المعلمات هذه بإدخال عنوان URI لتوقيع الوصول المشترك (SAS) لملف الحزمة (.cspkg أو .zip) مع المسارات المحلية لملف التكوين (.cscfg) وملف التعريف (.csdef). لا يلزم إدخال حساب تخزين.
    • ينشئ cmdlet ملف تعريف دور الخدمة السحابية وملف تعريف الشبكة وملف تعريف نظام التشغيل الحد الأدنى من الإدخال.
    • لإدخال شهادة، يجب تحديد اسم key vault. يتم التحقق من صحة بصمة الشهادة في مخزن المفاتيح مقابل الشهادات التي تحددها في ملف التكوين (.cscfg) للتوزيع.
  • إنشاء نشر باستخدام ملف تعريف دور، وملف تعريف نظام التشغيل، وملف تعريف الشبكة، وملف تعريف الملحق مع معرفات URI توقيع الوصول المشترك

    • مدخلات مجموعة المعلمات هذه معرفات URI ل SAS لملف الحزمة (.cspkg أو .zip) وملف التكوين (.cscfg).
    • يجب تحديد كائنات ملف التعريف: ملف تعريف الدور وملف تعريف الشبكة وملف تعريف نظام التشغيل وملف تعريف الملحق. يجب أن تتطابق ملفات التعريف مع القيم التي قمت بتعيينها في ملف التكوين (.cscfg) وملف التعريف (.csdef).

إنشاء نشر بسرعة باستخدام حساب تخزين

إنشاء نشر الخدمات السحابية (الدعم الموسع) باستخدام ملف الحزمة (.cspkg أو .zip) وملف التكوين (.cscfg) وملفات التعريف (.csdef):

$cspkgFilePath = "<Path to .cspkg file>"
$cscfgFilePath = "<Path to .cscfg file>"
$csdefFilePath = "<Path to .csdef file>"
      
# Create a Cloud Services (extended support) deployment   
New-AzCloudService
-Name "ContosoCS" `
-ResourceGroupName "ContosOrg" `
-Location "EastUS" `
-ConfigurationFile $cscfgFilePath `
-DefinitionFile $csdefFilePath `
-PackageFile $cspkgFilePath `
-StorageAccount $storageAccount `
[-KeyVaultName <string>]

إنشاء نشر بسرعة باستخدام SAS URI

  1. تحميل ملف الحزمة (.cspkg أو .zip) للتوزيع إلى حساب التخزين:

    $tokenStartTime = Get-Date 
    $tokenEndTime = $tokenStartTime.AddYears(1) 
    $cspkgBlob = Set-AzStorageBlobContent -File “./ContosoApp/ContosoApp.cspkg” -Container “contosocontainer” -Blob “ContosoApp.cspkg” -Context $storageAccount.Context 
    $cspkgToken = New-AzStorageBlobSASToken -Container “contosocontainer” -Blob $cspkgBlob.Name -Permission rwd -StartTime $tokenStartTime -ExpiryTime $tokenEndTime -Context $storageAccount.Context 
    $cspkgUrl = $cspkgBlob.ICloudBlob.Uri.AbsoluteUri + $cspkgToken 
    $cscfgFilePath = "<Path to cscfg file>"
    $csdefFilePath = "<Path to csdef file>"
    
  2. إنشاء نشر الخدمات السحابية (الدعم الموسع) باستخدام ملف الحزمة (.cspkg أو .zip) وملف التكوين (.cscfg) وملف التعريف (.csdef) SAS URI:

    New-AzCloudService
        -Name "ContosoCS" `
        -ResourceGroupName "ContosOrg" `
        -Location "EastUS" `
        -ConfigurationFile $cspkgFilePath `
        -DefinitionFile $csdefFilePath `
        -PackageURL $cspkgUrl `
        [-KeyVaultName <string>]
    

إنشاء نشر باستخدام كائنات ملف التعريف وواجهات SAS URIs

  1. قم بتحميل ملف تكوين الخدمات السحابية (الدعم الموسع) (.cscfg) إلى حساب التخزين:

    $cscfgBlob = Set-AzStorageBlobContent -File “./ContosoApp/ContosoApp.cscfg” -Container contosocontainer -Blob “ContosoApp.cscfg” -Context $storageAccount.Context 
    $cscfgToken = New-AzStorageBlobSASToken -Container “contosocontainer” -Blob $cscfgBlob.Name -Permission rwd -StartTime $tokenStartTime -ExpiryTime $tokenEndTime -Context $storageAccount.Context 
    $cscfgUrl = $cscfgBlob.ICloudBlob.Uri.AbsoluteUri + $cscfgToken 
    
  2. قم بتحميل ملف حزمة الخدمات السحابية (الدعم الموسع) (.cspkg أو .zip) إلى حساب التخزين:

    $tokenStartTime = Get-Date 
    $tokenEndTime = $tokenStartTime.AddYears(1) 
    $cspkgBlob = Set-AzStorageBlobContent -File “./ContosoApp/ContosoApp.cspkg” -Container “contosocontainer” -Blob “ContosoApp.cspkg” -Context $storageAccount.Context 
    $cspkgToken = New-AzStorageBlobSASToken -Container “contosocontainer” -Blob $cspkgBlob.Name -Permission rwd -StartTime $tokenStartTime -ExpiryTime $tokenEndTime -Context $storageAccount.Context 
    $cspkgUrl = $cspkgBlob.ICloudBlob.Uri.AbsoluteUri + $cspkgToken 
    
  3. قم بإنشاء شبكة ظاهرية وشبكة فرعية. هذه الخطوة اختيارية إذا كنت تستخدم شبكة وشبكة فرعية موجودة. يستخدم هذا المثال شبكة ظاهرية واحدة وشبكة فرعية لكل من أدوار الخدمات السحابية (الدعم الموسع) (WebRole وWorkerRole).

    $subnet = New-AzVirtualNetworkSubnetConfig -Name "ContosoWebTier1" -AddressPrefix "10.0.0.0/24" -WarningAction SilentlyContinue 
    $virtualNetwork = New-AzVirtualNetwork -Name “ContosoVNet” -Location “East US” -ResourceGroupName “ContosOrg” -AddressPrefix "10.0.0.0/24" -Subnet $subnet 
    
  4. إنشاء عنوان IP عام وتعيين قيمة تسمية DNS لعنوان IP العام. تدعم الخدمات السحابية (الدعم الموسع) عنوان IP العام ل SKU الأساسي فقط. لا تعمل عناوين IP العامة القياسية SKU مع الخدمات السحابية (الدعم الموسع).

    إذا كنت تستخدم عنوان IP ثابتا، يجب الرجوع إليه كعنوان IP محجوز في ملف التكوين (.cscfg) للنشر.

    $publicIp = New-AzPublicIpAddress -Name “ContosIp” -ResourceGroupName “ContosOrg” -Location “East US” -AllocationMethod Dynamic -IpAddressVersion IPv4 -DomainNameLabel “contosoappdns” -Sku Basic 
    
  5. إنشاء كائن ملف تعريف الشبكة، ثم إقران عنوان IP العام بالواجهة الأمامية لموازن التحميل. يقوم النظام الأساسي Azure تلقائيا بإنشاء مورد موازن تحميل SKU كلاسيكي في نفس الاشتراك مثل مورد الخدمات السحابية (الدعم الموسع). موازن التحميل هو مورد للقراءة فقط في Azure Resource Manager. يمكنك تحديث الموارد فقط عبر ملف تكوين الخدمات السحابية (الدعم الموسع) (.cscfg) وملف التوزيع (.csdef).

    $publicIP = Get-AzPublicIpAddress -ResourceGroupName ContosOrg -Name ContosIp  
    $feIpConfig = New-AzCloudServiceLoadBalancerFrontendIPConfigurationObject -Name 'ContosoFe' -PublicIPAddressId $publicIP.Id 
    $loadBalancerConfig = New-AzCloudServiceLoadBalancerConfigurationObject -Name 'ContosoLB' -FrontendIPConfiguration $feIpConfig 
    $networkProfile = @{loadBalancerConfiguration = $loadBalancerConfig} 
    
  6. إنشاء مخزن رئيسي. يخزن مخزن المفاتيح الشهادات المقترنة بأدوار الخدمات السحابية (الدعم الموسع). يجب أن يكون مخزن المفاتيح في نفس المنطقة والاشتراك مثل نشر الخدمات السحابية (الدعم الموسع) وأن يكون له اسم فريد. لمزيد من المعلومات، راجع استخدام الشهادات مع الخدمات السحابية (الدعم الموسع).

    New-AzKeyVault -Name "ContosKeyVault” -ResourceGroupName “ContosOrg” -Location “East US” 
    
  7. تحديث نهج الوصول إلى مخزن المفاتيح ومنح أذونات الشهادة لحساب المستخدم الخاص بك:

    Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -EnabledForDeployment
    Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -UserPrincipalName 'user@domain.com' -PermissionsToCertificates create,get,list,delete 
    

    بدلا من ذلك، قم بتعيين نهج الوصول باستخدام ObjectId القيمة . للحصول على ObjectId القيمة، قم بتشغيل Get-AzADUser:

    Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -ObjectId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -PermissionsToCertificates create,get,list,delete 
    
  8. يضيف المثال التالي شهادة موقعة ذاتيا إلى key vault. يجب إضافة بصمة الشهادة عبر ملف التكوين (.cscfg) لأدوار الخدمات السحابية (الدعم الموسع).

    $Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal 
    Add-AzKeyVaultCertificate -VaultName "ContosKeyVault" -Name "ContosCert" -CertificatePolicy $Policy 
    
  9. إنشاء ملف تعريف نظام التشغيل في كائن الذاكرة. يحدد ملف تعريف نظام التشغيل الشهادات المقترنة بأدوار الخدمات السحابية (الدعم الموسع)، وهي الشهادة التي قمت بإنشائها في الخطوة السابقة.

    $keyVault = Get-AzKeyVault -ResourceGroupName ContosOrg -VaultName ContosKeyVault 
    $certificate = Get-AzKeyVaultCertificate -VaultName ContosKeyVault -Name ContosCert 
    $secretGroup = New-AzCloudServiceVaultSecretGroupObject -Id $keyVault.ResourceId -CertificateUrl $certificate.SecretId 
    $osProfile = @{secret = @($secretGroup)} 
    
  10. إنشاء ملف تعريف دور في كائن الذاكرة. يحدد ملف تعريف الدور خصائص SKU الخاصة بالدور مثل الاسم والسعة والطبقة. في هذا المثال، يتم تعريف دورين: frontendRole و backendRole. يجب أن تتطابق معلومات ملف تعريف الدور مع تكوين الدور المحدد في ملف تكوين التوزيع (.cscfg) وملف التعريف (.csdef).

    $frontendRole = New-AzCloudServiceRoleProfilePropertiesObject -Name 'ContosoFrontend' -SkuName 'Standard_D1_v2' -SkuTier 'Standard' -SkuCapacity 2 
    $backendRole = New-AzCloudServiceRoleProfilePropertiesObject -Name 'ContosoBackend' -SkuName 'Standard_D1_v2' -SkuTier 'Standard' -SkuCapacity 2 
    $roleProfile = @{role = @($frontendRole, $backendRole)} 
    
  11. (اختياري) إنشاء كائن ملف تعريف ملحق في الذاكرة لإضافته إلى نشر الخدمات السحابية (الدعم الموسع). يضيف هذا المثال ملحق بروتوكول سطح المكتب البعيد (RDP):

    $credential = Get-Credential 
    $expiration = (Get-Date).AddYears(1) 
    $rdpExtension = New-AzCloudServiceRemoteDesktopExtensionObject -Name 'RDPExtension' -Credential $credential -Expiration $expiration -TypeHandlerVersion '1.2.1' 
    
    $storageAccountKey = Get-AzStorageAccountKey -ResourceGroupName "ContosOrg" -Name "contosostorageaccount"
    $configFile = "<WAD public configuration file path>"
    $wadExtension = New-AzCloudServiceDiagnosticsExtension -Name "WADExtension" -ResourceGroupName "ContosOrg" -CloudServiceName "ContosCS" -StorageAccountName "contosostorageaccount" -StorageAccountKey $storageAccountKey[0].Value -DiagnosticsConfigurationPath $configFile -TypeHandlerVersion "1.5" -AutoUpgradeMinorVersion $true 
    $extensionProfile = @{extension = @($rdpExtension, $wadExtension)} 
    

    يجب أن يحتوي ملف التكوين (.cscfg) على علامات فقط PublicConfig ويجب أن يحتوي على مساحة اسم كما هو موضح في المثال التالي:

    <?xml version="1.0" encoding="utf-8"?>
    <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
        ...............
    </PublicConfig>
    
  12. (اختياري) في جدول تجزئة PowerShell، يمكنك تعريف العلامات لإضافتها إلى التوزيع الخاص بك:

    $tag=@{"Owner" = "Contoso"} 
    
  13. إنشاء نشر الخدمات السحابية (الدعم الموسع) باستخدام كائنات ملف التعريف وواجهات SAS URIs التي قمت بتعريفها:

    $cloudService = New-AzCloudService ` 
        -Name “ContosoCS” ` 
        -ResourceGroupName “ContosOrg” ` 
        -Location “East US” ` 
        -PackageUrl $cspkgUrl ` 
        -ConfigurationUrl $cscfgUrl ` 
        -UpgradeMode 'Auto' ` 
        -RoleProfile $roleProfile ` 
        -NetworkProfile $networkProfile  ` 
        -ExtensionProfile $extensionProfile ` 
        -OSProfile $osProfile `
        -Tag $tag