Membuat lingkungan Azure DevTest Labs dari templat ARM

Dalam artikel ini, Anda mempelajari cara membuat lingkungan Azure DevTest Labs dari templat Azure Resource Manager (ARM). Anda dapat menggunakan lingkungan DevTest Labs untuk menyediakan lab dengan mudah dan konsisten dengan beberapa komputer virtual (VM) atau sumber daya platform-as-a-service (PaaS). Misalnya, untuk membuat lab untuk aplikasi web multi-tingkat, atau farm SharePoint.

Sumber daya di lingkungan memiliki siklus hidup yang sama, dan Anda dapat mengelolanya bersama-sama. Anda dapat melacak biaya lingkungan laboratorium dan sumber daya PaaS, sama seperti Anda melacak biaya untuk VM laboratorium individu.

Anda dapat mengonfigurasi Azure DevTest Labs untuk menggunakan templat ARM dari repositori Git publik atau privat. Pelajari selengkapnya tentang repositori templat untuk lab.

Diagram yang memperlihatkan cara membuat lingkungan dengan Azure DevTest Labs dari templat ARM di repositori templat publik atau kustom.

Jika Anda ingin menggunakan templat ARM untuk membuat sumber daya Azure DevTest Labs, lihat Mulai Cepat: menggunakan templat ARM untuk membuat lab di DevTest Labs.

Batasan

Pertimbangkan batasan ini saat Anda membuat lab dari templat ARM di DevTest Labs:

  • Mati otomatis VM tidak berlaku untuk sumber daya PaaS.

  • Tidak semua kebijakan lab dievaluasi saat Anda menyebarkan templat ARM. Kebijakan yang tidak dievaluasi meliputi: jumlah VM per pengguna lab, jumlah VM premium per pengguna, dan jumlah meja premium per pengguna. Misalnya, kebijakan lab Anda mungkin membatasi pengguna hanya lima VM masing-masing. Namun, pengguna dapat menyebarkan templat lingkungan ARM yang membuat puluhan VM.

Membuat lingkungan dari templat ARM

Anda dapat membuat lingkungan dari repositori templat publik Azure DevTest Labs atau Anda dapat menambahkan repositori templat privat ke lab Anda.

Pelajari cara mengonfigurasi lingkungan untuk lab Anda. Misalnya, cara mengonfigurasi repositori templat, mengaktifkan atau menonaktifkan lingkungan publik, dan memilih templat tertentu untuk membuat lab.

Untuk membuat lingkungan dari templat:

  1. Di portal Azure, pilih sumber daya lab Anda.

  2. Pada halaman Gambaran Umum lab, pilih Tambahkan dari toolbar atas.

  3. Pada halaman Pilih dasar, pilih templat lingkungan ARM untuk digunakan. Templat lingkungan yang tersedia muncul pertama kali dalam daftar basis.

    Cuplikan layar yang memperlihatkan templat lingkungan publik.

  4. Pada layar Tambahkan , masukkan Nama lingkungan, dan isi bidang input lainnya.

    Jumlah dan jenis bidang input ditentukan dalam templat ARM. Jika perlu, masukkan nilai untuk bidang input yang didefinisikan oleh file templat azuredeploy.parameters.json sebagai kosong atau default.

    • Untuk secure string parameter, Anda dapat menggunakan rahasia dari Azure Key Vault. Untuk mempelajari penyimpanan rahasia di brankas kunci dan menggunakannya saat membuat sumber daya lab, lihat Menyimpan rahasia di Azure Key Vault.

    • Dalam file templat ARM, nilai parameter GEN-UNIQUE, GEN-UNIQUE-[N], GEN-SSH-PUB-KEY, dan GEN-PASSWORD menghasilkan bidang input kosong bagi pengguna untuk memasukkan nilai.

    Cuplikan layar yang menampilkan panel Tambahkan untuk lingkungan SharePoint.

  5. Pilih Tambahkan untuk membuat lingkungan.

    Lingkungan mulai menyediakan langsung. Anda dapat melihat status provisi di bawah Lingkungan saya di halaman Gambaran Umum lab. Penyediaan lingkungan bisa memakan waktu lama.

  6. Setelah pembuatan lingkungan selesai, perluas lingkungan di bawah Lingkungan saya untuk melihat daftar VM dan sumber daya lain yang disediakan templat.

    Cuplikan layar yang memperlihatkan daftar VM di bawah lingkungan.

    Penyebaran membuat grup sumber daya baru untuk menyediakan semua sumber daya lingkungan yang ditentukan templat ARM. Pilih nama lingkungan di bawah Lingkungan saya untuk melihat grup sumber daya dan semua sumber daya yang dibuat templat.

    Cuplikan layar yang menampilkan grup sumber daya dengan semua sumber daya lingkungan.

  7. Pilih VM lingkungan untuk melihat tindakan yang tersedia untuk VM, seperti mengelola konfigurasi, jadwal, dan kebijakan.

    Cuplikan layar yang menampilkan tindakan yang tersedia untuk VM lingkungan.

Repositori templat lingkungan

Dengan Azure DevTest Labs, Anda dapat membuat lingkungan dari templat ARM. Templat ARM dapat berasal dari dua sumber:

Tip

Untuk menyarankan revisi atau penambahan ke templat publik, kirimkan permintaan pull terhadap repositori templat publik GitHub sumber terbuka.

Mengonfigurasi pengaturan lingkungan publik untuk lab Anda

Anda dapat mengonfigurasi lab untuk mengaktifkan penggunaan templat dari repositori templat publik. Jika Anda mengaktifkan repositori templat publik untuk lab, pengguna kemudian dapat dengan cepat membuat lingkungan dengan memilih templat ini langsung di portal Azure, mirip dengan cara mereka membuat VM di lab.

Selain itu, Anda dapat memilih templat mana yang tersedia bagi pengguna untuk membuat lingkungan.

Mengaktifkan lingkungan publik saat Anda membuat lab

Untuk mengaktifkan akses repositori lingkungan publik untuk lab saat Anda membuat lab:

  1. Pilih tab Pengaturan Dasar saat Anda membuat sumber daya DevTest Labs.

  2. Pilih Aktif di bidang Lingkungan publik .

    Cuplikan layar yang menampilkan pengaktifan lingkungan publik untuk lab baru.

Mengaktifkan atau menonaktifkan lingkungan publik untuk laboratorium lama

Untuk lab yang ada, atau lab yang Anda buat dengan templat ARM, lingkungan publik mungkin tidak diaktifkan. Untuk mengaktifkan atau menonaktifkan repositori lingkungan publik untuk lab lama:

  1. Di portal Azure, pilih sumber daya lab Anda.

  2. Pilih Konfigurasi dan kebijakan di navigasi kiri.

  3. Pilih Lingkungan publik di bawah Basis komputer virtual di navigasi kiri.

  4. Pilih Ya atau Tidak untuk Aktifkan Lingkungan Publik untuk lab ini, untuk mengaktifkan atau menonaktifkan lingkungan publik untuk lab.

  5. Pilih Simpan.

Pilih templat lingkungan publik yang tersedia

Saat Anda mengaktifkan lingkungan publik, semua templat lingkungan di repositori tersedia untuk membuat lingkungan. Untuk mengizinkan hanya lingkungan tertentu untuk lab:

  1. Di portal Azure, pilih sumber daya lab Anda.

  2. Pilih Konfigurasi dan kebijakan di navigasi kiri.

  3. Pilih Lingkungan publik di bawah Basis komputer virtual di navigasi kiri.

  4. Batalkan pilihan lingkungan tertentu dari daftar untuk membuatnya tidak tersedia untuk pengguna lab, lalu pilih Simpan.

    Cuplikan layar yang memperlihatkan daftar lingkungan publik untuk lab.

Konfigurasikan hak pengguna lingkungan

Secara default, pengguna lab memiliki peran Pembaca di lingkungan, dan tidak dapat mengubah sumber daya lingkungan. Misalnya, mereka tidak dapat menghentikan atau memulai sumber daya mereka. Untuk memberi pengguna lab peran Kontributor untuk memungkinkan mereka mengedit sumber daya lingkungan:

  1. Di portal Azure, pilih sumber daya lab Anda.

  2. Pilih Konfigurasi dan kebijakan di navigasi kiri.

  3. Pilih Pengaturan lab di navigasi kiri.

  4. Di bawahHak pengguna Grup sumber dayaakses> lingkungan, pilih Kontributor, lalu pilih Simpan.

    Cuplikan layar yang menampilkan konfigurasi izin Kontributor pengguna lab.

Mengotomatiskan pembuatan lingkungan

Jika Anda perlu membuat beberapa lingkungan untuk skenario pengembangan atau pengujian, Anda dapat mengotomatiskan penyebaran lingkungan dengan Azure PowerShell atau Azure CLI.

Anda dapat menggunakan perintah Azure CLI az deployment group create untuk membuat lingkungan. Untuk informasi selengkapnya, lihat Penerapan sumber daya dengan templat Resource Manager dan Azure CLI.

Pemilik dan administrator lab dapat menggunakan Azure PowerShell untuk membuat VM dan lingkungan dari templat ARM.

Catatan

Kami menyarankan agar Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Untuk mengotomatiskan penyebaran templat lingkungan ARM dengan Azure PowerShell:

  1. Mintalah templat lingkungan ARM yang diperiksa ke repositori Git, dan repositori ditambahkan ke lab.

  2. Simpan sampel skrip PowerShell berikut ke hard drive Anda sebagai deployenv.ps1. Skrip ini memanggil templat ARM untuk membuat lingkungan di lab.

    #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 Git repository)
    [string] [Parameter(Mandatory=$true)] $TemplateName,
    
    # Name of the environment to create in the lab
    [string] [Parameter(Mandatory=$true)] $EnvironmentName,
    
    # The parameters to be passed 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 will be "-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 that has the 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 the 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 the 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. Jalankan skrip, menggunakan nilai Anda sendiri untuk mengganti nilai contoh untuk:

    • SubscriptionId
    • LabName
    • ResourceGroupName
    • RepositoryName
    • TemplateName (folder templat di repositori Git)
    • EnvironmentName
    ./deployenv.ps1 -SubscriptionId "000000000-0000-0000-0000-0000000000000" -LabName "mydevtestlab" -ResourceGroupName "mydevtestlabRG000000" -RepositoryName "myRepository" -TemplateName "ARM template folder name" -EnvironmentName "myNewEnvironment"
    

Langkah berikutnya