Megosztás a következőn keresztül:


Cloud Services (kiterjesztett támogatás) üzembe helyezése az Azure PowerShell használatával

Ez a cikk bemutatja, hogyan hozhat létre egy több szerepkörrel (WebRole és WorkerRole) rendelkező Azure Cloud Services-üzembe helyezést az Az.CloudService Azure PowerShell modullal.

Előfeltételek

Az üzembe helyezés Azure PowerShell-lel való létrehozásának előfeltételeként végezze el az alábbi lépéseket.

  1. Tekintse át a Cloud Services üzembehelyezési előfeltételeit (kiterjesztett támogatás), és hozza létre a szükséges erőforrásokat.

  2. Telepítse az Az.CloudService PowerShell-modult:

    Install-Module -Name Az.CloudService 
    
  3. Új erőforráscsoport létrehozása. Ez a lépés nem kötelező, ha meglévő erőforráscsoportot használ.

    New-AzResourceGroup -ResourceGroupName “ContosOrg” -Location “East US” 
    
  4. Hozzon létre egy tárfiókot és tárolót az Azure-ban a Cloud Services (kiterjesztett támogatás) üzembe helyezéséhez szükséges csomagfájl (.cspkg vagy .zip) és konfigurációs (.cscfg) fájl tárolásához. A tárfiók nevének egyedi nevet kell használnia. Ez a lépés nem kötelező, ha meglévő tárfiókot használ.

    $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 üzembe helyezése (kiterjesztett támogatás)

A Cloud Services (kiterjesztett támogatás) üzembe helyezéséhez használja a következő PowerShell-parancsmag-beállításokat:

  • Üzembe helyezés gyors létrehozása tárfiók használatával

    • Ez a paraméterkészlet bemenetként adja meg a csomagfájlt (.cspkg vagy .zip), a konfigurációs (.cscfg) fájlt és az üzembe helyezés definíciós (.csdef) fájlját a tárfiók bemeneteként.
    • A parancsmag minimális bemenettel hozza létre a Cloud Services (kiterjesztett támogatás) szerepkörprofilt, hálózati profilt és operációsrendszer-profilt.
    • A tanúsítvány megadásához meg kell adnia egy kulcstartó nevét. A kulcstartóban található tanúsítvány ujjlenyomatait a rendszer az üzembe helyezés konfigurációs (.cscfg) fájljában megadott tanúsítványokkal ellenőrzi.
  • Üzembe helyezés gyors létrehozása közös hozzáférésű jogosultságkód URI használatával

    • Ez a paraméterkészlet a csomag (.cspkg vagy .zip) fájl közös hozzáférésű jogosultságkódjának (SAS) URI-ját adja meg a konfigurációs (.cscfg) fájl és a definíciós (.csdef) fájl helyi elérési útjával. Nincs szükség tárfiók-bemenetre.
    • A parancsmag minimális bemenetet hoz létre a felhőszolgáltatás szerepkörprofilja, a hálózati profil és az operációsrendszer-profil számára.
    • A tanúsítvány megadásához meg kell adnia egy kulcstartó nevét. A kulcstartóban található tanúsítvány ujjlenyomatait a rendszer az üzembe helyezés konfigurációs (.cscfg) fájljában megadott tanúsítványokkal ellenőrzi.
  • Üzembe helyezés létrehozása szerepkörprofil, operációsrendszer-profil, hálózati profil és bővítményprofil használatával közös hozzáférésű jogosultságkód URI-kkal

    • Ez a paraméterkészlet a csomagfájl (.cspkg vagy .zip) és a konfigurációs (.cscfg) fájl SAS URI-jait adja meg.
    • Meg kell adnia profilobjektumokat: szerepkörprofilt, hálózati profilt, operációsrendszer-profilt és bővítményprofilt. A profilnak meg kell egyeznie a konfigurációs (.cscfg) fájlban és a definíciós (.csdef) fájlban beállított értékekkel.

Üzembe helyezés gyors létrehozása tárfiók használatával

Hozzon létre egy Felhőszolgáltatások (kiterjesztett támogatás) üzembe helyezést a csomagfájl (.cspkg vagy .zip) fájl, a konfigurációs (.cscfg) fájl és a definíciós (.csdef) fájlok használatával:

$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>]

Üzembe helyezés gyors létrehozása SAS URI használatával

  1. Töltse fel az üzembe helyezéshez szükséges csomagfájlt (.cspkg vagy .zip) a tárfiókba:

    $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. Hozza létre a Cloud Services (kiterjesztett támogatás) üzembe helyezését a csomagfájl (.cspkg vagy .zip) fájl, a konfigurációs (.cscfg) fájl és a definíciós (.csdef) SAS URI fájl használatával:

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

Üzembe helyezés létrehozása profilobjektumok és SAS URI-k használatával

  1. Töltse fel a Cloud Services -konfigurációs (.cscfg) fájlt a tárfiókba:

    $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. Töltse fel a Cloud Services-csomag (.cspkg vagy .zip) fájlját a tárfiókba:

    $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. Hozzon létre egy virtuális hálózatot és egy alhálózatot. Ez a lépés nem kötelező, ha meglévő hálózatot és alhálózatot használ. Ez a példa egyetlen virtuális hálózatot és alhálózatot használ a Cloud Services (kiterjesztett támogatási) szerepkörökhöz (WebRole és 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. Hozzon létre egy nyilvános IP-címet, és állítson be egy DNS-címkeértéket a nyilvános IP-címhez. A Cloud Services (kiterjesztett támogatás) csak az alapszintű termékváltozat nyilvános IP-címét támogatja. A standard termékváltozat nyilvános IP-címei nem működnek a Cloud Services szolgáltatással (kiterjesztett támogatás).

    Ha statikus IP-címet használ, fenntartott IP-címként kell hivatkoznia rá az üzembe helyezés konfigurációs (.cscfg) fájljában.

    $publicIp = New-AzPublicIpAddress -Name “ContosIp” -ResourceGroupName “ContosOrg” -Location “East US” -AllocationMethod Dynamic -IpAddressVersion IPv4 -DomainNameLabel “contosoappdns” -Sku Basic 
    
  5. Hozzon létre egy hálózati profilobjektumot, majd társítsa a nyilvános IP-címet a terheléselosztó előtéréhez. Az Azure platform automatikusan létrehoz egy klasszikus termékváltozatú terheléselosztó-erőforrást ugyanabban az előfizetésben, mint a Cloud Services (kiterjesztett támogatási) erőforrás. A terheléselosztó egy írásvédett erőforrás az Azure Resource Managerben. Az erőforrásokat csak a Cloud Services (kiterjesztett támogatás) konfigurációs (.cscfg) fájlon és az üzembe helyezési (.csdef) fájlon keresztül frissítheti.

    $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. Kulcstartó létrehozása. A kulcstartó a Cloud Services (kiterjesztett támogatási) szerepkörökhöz társított tanúsítványokat tárolja. A kulcstartónak ugyanabban a régióban és előfizetésben kell lennie, mint a Cloud Services (kiterjesztett támogatás) üzembe helyezése, és egyedi névvel kell rendelkeznie. További információ: Tanúsítványok használata a Cloud Services szolgáltatással (kiterjesztett támogatás).

    New-AzKeyVault -Name "ContosKeyVault” -ResourceGroupName “ContosOrg” -Location “East US” 
    
  7. Frissítse a kulcstartó hozzáférési szabályzatát, és adjon tanúsítványengedélyeket a felhasználói fióknak:

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

    Másik lehetőségként állítsa be a hozzáférési szabályzatot az ObjectId érték használatával. Az érték lekéréséhez futtassa a ObjectId következőt Get-AzADUser:

    Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -ObjectId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -PermissionsToCertificates create,get,list,delete 
    
  8. Az alábbi példa egy önaláírt tanúsítványt ad hozzá egy kulcstartóhoz. A tanúsítvány ujjlenyomatát a Cloud Services (kiterjesztett támogatási) szerepkörök konfigurációs (.cscfg) fájljának használatával kell hozzáadnia.

    $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. Hozzon létre egy operációsrendszer-profilt a memóriában. Az operációsrendszer-profil a Cloud Services (kiterjesztett támogatási) szerepkörökhöz társított tanúsítványokat határozza meg, amely az előző lépésben létrehozott tanúsítvány.

    $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. Szerepkörprofil létrehozása a memóriában objektumban. A szerepkörprofil meghatározza a szerepkör termékváltozat-specifikus tulajdonságait, például a nevet, a kapacitást és a réteget. Ebben a példában két szerepkör van definiálva: frontendRole és backendRole. A szerepkörprofil adatainak meg kell egyezniük az üzembe helyezési konfigurációs (.cscfg) fájlban és a definíciós (.csdef) fájlban definiált szerepkör-konfigurációval.

    $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. (Nem kötelező) Hozzon létre egy bővítményprofilt a memóriában, amely hozzáadható a Cloud Services (kiterjesztett támogatás) üzembe helyezéséhez. Ez a példa egy Távoli asztali protokoll (RDP) bővítményt ad hozzá:

    $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)} 
    

    A konfigurációs (.cscfg) fájlnak csak PublicConfig címkéket kell tartalmaznia, és egy névteret kell tartalmaznia az alábbi példában látható módon:

    <?xml version="1.0" encoding="utf-8"?>
    <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
        ...............
    </PublicConfig>
    
  12. (Nem kötelező) Egy PowerShell-kivonattáblában megadhat címkéket, amelyekkel hozzáadhatja az üzembe helyezést:

    $tag=@{"Owner" = "Contoso"} 
    
  13. Hozza létre a Cloud Services (kiterjesztett támogatás) üzembe helyezését a megadott profilobjektumok és SAS URI-k használatával:

    $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