Megosztás:


Környezetek létrehozása ARM-sablonokból

Az Azure DevTest Labs-környezetekkel egyszerűen és következetesen építhet ki tesztkörnyezeteket több virtuális géppel (virtuális gépekkel) és szolgáltatásként nyújtott platform (PaaS) erőforrásokkal. Ez a cikk bemutatja, hogyan hozhat létre DevTest Labs-környezeteket az Azure Resource Manager-sablonokból . Ezzel a módszerrel létrehozhat egy tesztkörnyezetet egy többrétegű webalkalmazáshoz vagy egy SharePoint-farmhoz.

A DevTest Labs-környezetben lévő erőforrások azonos életciklussal rendelkeznek. Ezeket együtt kezelheti, és nyomon követheti az egyes PaaS-erőforrások költségeit a tesztkörnyezetben, ahogyan az egyes virtuális gépek költségeit is nyomon követheti.

Konfigurálhat egy tesztkörnyezetet arm-környezetsablonok használatára nyilvános vagy privát Git-sablontárakból. Az alábbi ábra bemutatja, hogy a DevTest Labs hogyan használ ARM-sablont egy nyilvános vagy privát adattárból egy virtuális gépeket és más erőforrásokat tartalmazó környezet üzembe helyezéséhez.

Az ARM-sablonok Git-adattárakból való lekérését és a Környezetek PaaS-erőforrásokkal való üzembe helyezését bemutató ábra.

Feljegyzés

Ha nagyvállalati szintű PaaS-erőforrásokat, szabályzatokat és biztonsági beállításokat, illetve a CI/CD-integrációt kell kezelnie az üzembe helyezési szakaszok és alkalmazások között, fontolja meg az Azure Deployment Environments (ADE) használatát környezetek létrehozásához. Az ADE lehetővé teszi a fejlesztők számára az alkalmazásinfrastruktúra gyors üzembe helyezését projektalapú sablonok használatával, így konzisztens és biztonságos környezetet biztosítanak a fejlesztői csapatok számára. További információkért tekintse meg az Azure Deployment Environments dokumentációját.

Előfeltételek

  • Ahhoz, hogy sablontárakat adjon hozzá vagy konfiguráljon egy laborhoz, legalább közreműködői engedéllyel kell rendelkeznie a laborban.
  • Ahhoz, hogy Azure DevTest-környezeteket hozzon létre az elérhető ARM-sablonokból, legalább DevTest-felhasználói engedélyekkel kell rendelkeznie a laborban.
  • Ha a PowerShell-szkriptet az Automate környezetlétrehozásban szeretné futtatni, az Azure PowerShell telepítve van a Az.Resources modullal.

Korlátozások

A DevTest Labs ARM-környezetsablonjaiból létrehozott környezetek a következő korlátozásokkal rendelkeznek:

  • A virtuális gépek autoshutdown funkciója nem támogatott.

  • A következő laborszabályzatok nincsenek kényszerítve vagy kiértékelve:

    • Virtuális gépek száma tesztkörnyezet-felhasználónként
    • Prémium szintű virtuális gépek száma felhasználónként
    • Prémium szintű lemezek száma felhasználónként

    Ha például a laborszabályzat csak öt virtuális gép létrehozását teszi lehetővé, a felhasználó üzembe helyezhet egy ARM-környezetsablont, amely több tucat virtuális gépet hoz létre.

Sablontárak konfigurálása tesztkörnyezetekhez

A tesztkörnyezetet úgy konfigurálhatja, hogy ARM-környezetsablonokat használjon a DevTest Labs nyilvános ARM-sablontárából és más nyilvános vagy privát Git-adattárakból. Amikor engedélyezi a tesztkörnyezet hozzáférését egy sablontárhoz, a tesztkörnyezet felhasználói gyorsan létrehozhatnak környezeteket az Azure Portal sablonjainak kiválasztásával, hasonlóan a virtuális gépek létrehozásához.

A DevTest Labs nyilvános ARM-sablontárában előre elkészített környezetsablonok találhatók az Azure Web Appshez, egy Azure Service Fabric-fürthöz és a fejlesztési SharePoint-farmokhoz. A PaaS-erőforrások zökkenőmentes használatbavétele érdekében a sablonok minimális bemeneti paraméterekkel rendelkeznek.

A nyilvános környezet sablonjait igény szerint használhatja, vagy testre szabhatja őket. A nyilvános sablon változatait vagy kiegészítéseit úgy is javasolhatja, hogy lekéréses kérelmet küld a GitHub nyilvános sablontárházába.

A környezetsablonokat más nyilvános vagy privát Git-adattárakban is tárolhatja, és ezeket az adattárakat hozzáadhatja a laborhoz, hogy a sablonokat elérhetővé tegye az összes tesztkörnyezet-felhasználó számára. Útmutatásért lásd: Arm-sablonok tárolása a Git-adattárakban , és sablontárak hozzáadása a laborokhoz.

Nyilvános környezet beállításainak konfigurálása

Engedélyezheti a tesztkörnyezet hozzáférését a DevTest Labs nyilvános sablontárához egy új vagy meglévő tesztkörnyezethez. Ha engedélyezi az adattárhoz való hozzáférést, kiválaszthatja, hogy mely környezeti sablonokat tegye elérhetővé a tesztkörnyezet felhasználói számára.

Nyilvános környezet hozzáférésének konfigurálása új tesztkörnyezethez

Ha új tesztkörnyezet létrehozásakor szeretné konfigurálni a nyilvános környezet adattár-hozzáférését, az Alapbeállítások lapon állítsa be vagyki a Nyilvános környezetek beállítást. Ez a beállítás alapértelmezés szerint Be értékre van állítva.

Képernyőkép, amely bemutatja, hogyan engedélyezheti a nyilvános környezeti adattárakat egy labor számára a labor létrehozása során.

Nyilvános környezet hozzáférésének konfigurálása meglévő tesztkörnyezethez

A nyilvános környezeti adattár hozzáférésének engedélyezése vagy letiltása egy meglévő tesztkörnyezetben:

  1. A tesztkörnyezet Azure Portaláttekintési lapján válassza a Konfiguráció és szabályzatok lehetőséget a bal oldali navigációs menü Beállítások területén.

  2. A Konfiguráció és szabályzatok lapon bontsa ki a virtuálisgép-bázisokat a bal oldali menüben, és válassza a Nyilvános környezetek lehetőséget.

  3. A Nyilvános környezetek lapon állítsa a tesztkörnyezethez tartozó Nyilvános környezetek engedélyezése beállítást Igen vagy Nem értékre.

    Képernyőkép, amely bemutatja, hogyan engedélyezheti az összes nyilvános környezeti adattárat egy meglévő laborerőforráshoz.

  4. Válassza a Mentés lehetőséget.

Elérhető nyilvános környezetsablonok kiválasztása

Ha engedélyezi a nyilvános környezeti adattárat egy tesztkörnyezethez, az adattárban lévő összes környezeti sablon alapértelmezés szerint elérhető a tesztkörnyezet felhasználói számára. A kijelölt sablonokhoz való hozzáférést letilthatja. A letiltott sablonok már nem jelennek meg a felhasználók által létrehozható környezetek listájában.

Adott környezeti sablonokhoz való hozzáférés letiltása:

  1. A labor Azure Portál Konfigurációk és szabályzatok>virtuális gép alapjai>nyilvános környezetek lapján törölje a letiltani kívánt környezetek melletti jelölőnégyzetek kijelölését.

  2. Válassza a Mentés lehetőséget.

Képernyőkép arról, hogyan lehet megszüntetni a nyilvános környezeti adattárak kijelölését egy tesztkörnyezetben a felhasználók hozzáférésének letiltásához.

Környezeti felhasználói engedélyek konfigurálása

Alapértelmezés szerint a tesztkörnyezet felhasználói az Olvasó szerepkörhöz vannak rendelve az általuk létrehozott környezetekben. Az olvasók nem állíthatják le, nem indíthatják el és nem módosíthatják az olyan környezeti erőforrásokat, mint az SQL-kiszolgálók vagy az adatbázisok. Ha engedélyezni szeretné, hogy a tesztkörnyezet felhasználói szerkeszthessék a környezetükben lévő erőforrásokat, közreműködői szerepkört adhat nekik a környezetük erőforráscsoportjában.

  1. A tesztkörnyezet Azure Portaláttekintési lapján válassza a Konfiguráció és szabályzatok lehetőséget a bal oldali navigációs menü Beállítások területén.

  2. A Konfiguráció és szabályzatok lapon bontsa ki a beállításokat a bal oldali menüben, és válassza a Tesztkörnyezet beállításai lehetőséget.

  3. A Tesztkörnyezet beállításai lap Környezeti hozzáférés területén állítsa be az erőforráscsoport felhasználói jogosultsági beállításait Közreműködőre.

  4. Válassza a Mentés lehetőséget.

Képernyőkép arról, hogyan állíthat be közreműködői szerepkör-engedélyeket a tesztkörnyezet felhasználói számára a DevTest Labsban.

Környezetek létrehozása sablonokból

Ha a tesztkörnyezet nyilvános vagy privát sablontárak használatára van konfigurálva, létrehozhat egy környezetet egy elérhető ARM-sablon kiválasztásával, hasonlóan egy virtuális gép (VM) létrehozásához. Kövesse az alábbi lépéseket a környezet sablonból való létrehozásához.

  1. A tesztkörnyezet Azure Portaláttekintési lapján válassza a Saját környezetek lehetőséget a Saját tesztkörnyezet területen a bal oldali navigációs menüben.

  2. A Saját környezetek lapon válassza a Hozzáadás lehetőséget.

  3. Az Alaplap kiválasztása lapon válassza ki a létrehozni kívánt környezetet.

    Képernyőkép a DevTest Labs-tesztkörnyezet erőforrásához elérhető nyilvános környezeti ARM-sablonokról.

  4. A Hozzáadás panelen adja meg a környezet nevét , és konfigurálja a többi paraméterbeállítást.

    Képernyőkép a SharePoint-környezethez konfigurálni kívánt beállításokat tartalmazó Hozzáadás panelről.

    • Minden ARM-környezetsablon egyedi paramétereket tartalmaz. Környezet hozzáadásakor meg kell adnia az összes szükséges paraméter értékét piros csillagokkal jelölve.
    • Egy azuredeploy.parameters.json ARM-sablonfájl egyes paraméterértékei üres beállításmezőket hoznak létre, alapértelmezett érték nélkül a Hozzáadás panelen. Ezek az értékek a következők: GEN-UNIQUE, GEN-UNIQUE-[N], GEN-SSH-PUB-KEYés GEN-PASSWORD.
    • Az Azure Key Vault titkait olyan titkosított szövegrészekként használhatja, mint a jelszavak. További információ: Titkos kulcsok tárolása az Azure Key Vaultban.
  5. Válassza a Hozzáadás lehetőséget. A környezet azonnal megkezdi a kiépítést.

A környezet kiépítésének folyamata hosszú időt vehet igénybe. A teljes idő a DevTest Labs által a tesztkörnyezet részeként létrehozott szolgáltatáspéldányok, virtuális gépek és egyéb erőforrások számától függ.

A kiépítés állapotát a Saját környezetek lapon figyelheti. Válassza az eszköztár Frissítés elemét a lapnézet frissítéséhez és az aktuális állapot ellenőrzéséhez. Amíg a kiépítés folyamatban van, a környezet állapota Létrehozás. A kiépítés befejezése után az állapot készre változik.

Képernyőkép a tesztkörnyezet kiépítési állapotának megtekintéséről.

Ha a környezet készen áll, kibonthatja a környezetet a Saját környezetek listában, és megtekintheti a kiépített virtuális gépeket.

Képernyőkép az újonnan kiépített környezethez létrehozott virtuális gépek listájáról.

Az üzembe helyezés létrehoz egy új erőforráscsoportot az ARM-sablon által definiált összes környezeti erőforrás kiépítéséhez. Válassza ki a környezetet a Saját környezetek listában az erőforráscsoport és a sablon által létrehozott összes erőforrás megtekintéséhez.

Képernyőkép az erőforráscsoportról az összes környezeti erőforrással, beleértve a virtuális gépeket, lemezeket, a virtuális hálózatot stb.

Válasszon ki egy virtuális gépet a listában a virtuális gép tulajdonságainak és az elérhető műveleteknek, például a konfiguráció, az ütemezések és a szabályzatok kezelésének megtekintéséhez.

Képernyőkép a kijelölt környezeti virtuális gép elérhető műveleteiről.

Környezet létrehozásának automatizálása

Ha több környezetet kell létrehoznia fejlesztési vagy tesztelési forgatókönyvekhez, az Azure PowerShell vagy az Azure CLI használatával automatizálhatja a környezetek ARM-sablonokból való üzembe helyezését. Az alábbi lépések bemutatják, hogyan automatizálhatja az ARM-környezetsablonok üzembe helyezését az Azure PowerShell-paranccsal New-AzResource .

Az üzembe helyezést az Azure CLI az deployment group create paranccsal is automatizálhatja. További információ: Erőforrások üzembe helyezése ARM-sablonokkal és az Azure CLI-vel.

  1. Tárolja az ARM-környezetsablont egy Git-adattárban , és adja hozzá az adattárat a laborhoz.

  2. Mentse a következő PowerShell-szkriptet a számítógépre deployenv.ps1. Ez a szkript meghívja az ARM-sablont, hogy létrehozza a környezetet a laborban.

    #Requires -Module Az.Resources
    
    [CmdletBinding()]
    
    param (
    # ID of the Azure subscription for the lab
    [string] [Parameter(Mandatory=$true)] $SubscriptionId,
    
    # Name of the lab in which to create the environment
    [string] [Parameter(Mandatory=$true)] $LabName,
    
    # Name of the template repository connected to the lab
    [string] [Parameter(Mandatory=$true)] $RepositoryName,
    
    # Name of the template (folder name in the GitHub repository)
    [string] [Parameter(Mandatory=$true)] $TemplateName,
    
    # Name of the environment to create in the lab
    [string] [Parameter(Mandatory=$true)] $EnvironmentName,
    
    # The parameters to pass to the template. Each parameter is prefixed with "-param_".
    # For example, if the template has a parameter named "TestVMName" with a value of "MyVMName",
    # the string in $Params is "-param_TestVMName MyVMName".
    # This convention allows the script to dynamically handle different templates.
    [Parameter(ValueFromRemainingArguments=$true)]
        $Params
    )
    
    # Sign in to Azure, or comment out this statement to completely automate environment creation.
    Connect-AzAccount
    
    # Select the subscription for your lab.  
    Set-AzContext -SubscriptionId $SubscriptionId | Out-Null
    
    # Get the user ID to use later in the script.
    $UserId = $((Get-AzADUser -UserPrincipalName ((Get-AzContext).Account).Id).Id)
    
    # Get the lab location.
    $lab = Get-AzResource -ResourceType "Microsoft.DevTestLab/labs" -Name $LabName
    if ($lab -eq $null) { throw "Unable to find lab $LabName in subscription $SubscriptionId." }
    
    # Get information about the repository connected to your lab.
    $repository = Get-AzResource -ResourceGroupName $lab.ResourceGroupName `
        -ResourceType 'Microsoft.DevTestLab/labs/artifactsources' `
        -ResourceName $LabName `
        -ApiVersion 2016-05-15 `
        | Where-Object { $RepositoryName -in ($_.Name, $_.Properties.displayName) } `
        | Select-Object -First 1
    if ($repository -eq $null) { throw "Unable to find repository $RepositoryName in lab $LabName." }
    
    # Get information about the ARM template base for the environment.
    $template = Get-AzResource -ResourceGroupName $lab.ResourceGroupName `
        -ResourceType "Microsoft.DevTestLab/labs/artifactSources/armTemplates" `
        -ResourceName "$LabName/$($repository.Name)" `
        -ApiVersion 2016-05-15 `
        | Where-Object { $TemplateName -in ($_.Name, $_.Properties.displayName) } `
        | Select-Object -First 1
    if ($template -eq $null) { throw "Unable to find template $TemplateName in lab $LabName." }
    
    # Build the template parameters by using parameter names and values.
    $parameters = Get-Member -InputObject $template.Properties.contents.parameters -MemberType NoteProperty | Select-Object -ExpandProperty Name
    $templateParameters = @()
    
    # Extract the custom parameters from $Params and format them as name/value pairs.
    $Params | ForEach-Object {
        if ($_ -match '^-param_(.*)' -and $Matches[1] -in $parameters) {
            $name = $Matches[1]                
        } elseif ( $name ) {
            $templateParameters += @{ "name" = "$name"; "value" = "$_" }
            $name = $null #reset name variable
        }
    }
    
    # Create an object to hold the necessary template properties.
    $templateProperties = @{ "deploymentProperties" = @{ "armTemplateId" = "$($template.ResourceId)"; "parameters" = $templateParameters }; }
    
    # Deploy the environment in your lab by using the New-AzResource command.
    New-AzResource -Location $Lab.Location `
        -ResourceGroupName $lab.ResourceGroupName `
        -Properties $templateProperties `
        -ResourceType 'Microsoft.DevTestLab/labs/users/environments' `
        -ResourceName "$LabName/$UserId/$EnvironmentName" `
        -ApiVersion '2016-05-15' -Force
    
    Write-Output "Environment $EnvironmentName completed."
    
  3. A szkript használatához futtassa a következő parancsot. Frissítse a parancs helyőrzőit a saját laborértékeivel.

    .\DeployLabEnvironment.ps1 `
        -SubscriptionId "<Subscription ID>" `
        -LabName "<LabName>" `
        -ResourceGroupName "<LabResourceGroupName>" `
        -RepositoryName "<TemplateRepoName>" `
        -TemplateName "<TemplateFolderName>" `
        -EnvironmentName "<EnvironmentName>"