Bagikan melalui


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 sumber daya komputer virtual (VM) atau platform-as-a-service (PaaS). Anda mungkin menggunakan pendekatan ini untuk membuat lab untuk aplikasi web multi-tingkat atau farm SharePoint.

Sumber daya di lingkungan DevTest Labs memiliki siklus hidup yang sama dan Anda dapat mengelolanya bersama-sama. Anda dapat melacak biaya lingkungan lab dan sumber daya PaaS dengan cara yang sama seperti Anda melacak biaya untuk masing-masing VM lab.

Anda dapat mengonfigurasi Azure DevTest Labs untuk menggunakan templat ARM dari repositori GitHub publik atau privat. Diagram berikut menunjukkan cara membuat lingkungan dengan DevTest Labs dari templat ARM di repositori templat publik atau kustom. Bagian repositori templat untuk lab menjelaskan proses ini secara rinci.

Diagram yang memperlihatkan cara membuat lingkungan dengan DevTest Labs dengan menggunakan templat ARM di repositori templat.

Catatan

Azure Deployment Environments (ADE) sangat disarankan untuk membuat lingkungan. ADE memberdayakan pengembang untuk menyebarkan infrastruktur aplikasi dengan cepat menggunakan templat berbasis proyek, memastikan lingkungan yang konsisten dan aman untuk tim pengembangan Anda.

Untuk mempelajari selengkapnya tentang Lingkungan Penyebaran Azure, lihat dokumentasi Lingkungan Penyebaran Azure.

Prasyarat

  • Sangat membantu untuk memiliki pengalaman mengonfigurasi lingkungan lab di DevTest Labs. Jika Anda baru bekerja dengan lab, mulailah dengan meninjau instruksi di bagian Mengonfigurasi pengaturan lingkungan publik. Anda perlu memahami cara mengonfigurasi repositori templat, mengaktifkan atau menonaktifkan lingkungan publik, dan memilih templat untuk membuat lab.

Batasan

Ada beberapa batasan yang perlu diingat saat Anda membuat lab dari templat ARM di DevTest Labs:

  • DevTest Labs tidak mendukung fitur matikan otomatis komputer virtual (VM) untuk sumber daya PaaS yang dibuat dari templat ARM.

  • DevTest Labs tidak mengevaluasi semua kebijakan lab saat Anda menyebarkan templat ARM. Kebijakan berikut tidak dievaluasi:

    • Jumlah VM per pengguna lab
    • Jumlah VM premium per pengguna
    • Jumlah meja premium per pengguna

    Misalkan Anda memiliki kebijakan lab yang memungkinkan setiap pengguna membuat maksimal lima VM. Di DevTest Labs, setiap 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.

Buat lingkungan dari templat dengan mengikuti langkah-langkah berikut:

  1. Di portal Azure, buka sumber daya lab DevTest Labs Anda.

  2. Pada halaman Gambaran Umum lab, perluas bagian Lab saya di menu sebelah kiri, dan pilih Lingkungan saya.

  3. Pada halaman Lingkungan saya, pilih Tambahkan pada toolbar.

  4. Pada halaman Pilih dasar , pilih templat lingkungan ARM untuk digunakan:

    Cuplikan layar yang memperlihatkan templat ARM lingkungan publik yang tersedia untuk sumber daya lab DevTest Labs.

  5. Pada panel Tambahkan, masukkan Nama lingkungan, dan konfigurasikan pengaturan parameter lainnya.

    Jenis dan jumlah parameter unik untuk setiap templat ARM. Tanda bintang merah (*) menunjukkan pengaturan yang diperlukan. Anda harus memasukkan nilai untuk semua pengaturan yang diperlukan.

    Beberapa nilai parameter dalam file templat ARM (azuredeploy.parameters.json) menghasilkan bidang pengaturan kosong di panel Tambahkan (tanpa nilai default). Nilai parameter ini termasuk GEN-UNIQUE, GEN-UNIQUE-[N], GEN-SSH-PUB-KEY, dan GEN-PASSWORD.

    Cuplikan layar yang memperlihatkan panel Tambahkan dengan pengaturan untuk mengonfigurasi lingkungan SharePoint.

    Untuk parameter string aman seperti kata sandi, Anda dapat menggunakan rahasia dari Azure Key Vault. Untuk mempelajari cara menyimpan rahasia di brankas kunci dan menggunakannya saat Anda membuat sumber daya lab, lihat Menyimpan rahasia di Azure Key Vault.

  6. Pilih Tambahkan untuk membuat lingkungan. Lingkungan mulai menyediakan langsung.

    Catatan

    Proses untuk memprovisikan lingkungan dapat memakan waktu lama. Total waktu tergantung pada jumlah instans layanan, VM, dan sumber daya lain yang dibuat DevTest Labs sebagai bagian dari lingkungan lab.

  7. Untuk memantau status provisi, kembali ke halaman Lingkungan saya untuk lab:

    Cuplikan layar yang memperlihatkan cara melihat status provisi untuk lingkungan lab.

    Saat provisi sedang berlangsung, status lingkungan adalah Membuat. Setelah provisi selesai, status berubah menjadi Siap. Anda dapat memilih Refresh pada toolbar untuk memperbarui tampilan halaman dan memeriksa status saat ini.

  8. Saat lingkungan siap, Anda dapat memperluas lingkungan di daftar Lingkungan saya untuk melihat VM yang disediakan oleh templat:

    Cuplikan layar yang memperlihatkan daftar VM yang dibuat untuk lingkungan yang baru disediakan.

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

    Cuplikan layar yang memperlihatkan grup sumber daya dengan semua sumber daya lingkungan, termasuk VM, disk, jaringan virtual, dan banyak lagi.

  10. Pilih VM lingkungan dalam daftar untuk melihat tindakan yang tersedia untuk VM, seperti mengelola konfigurasi, jadwal, dan kebijakan:

    Cuplikan layar yang memperlihatkan tindakan yang tersedia untuk VM lingkungan yang dipilih.

Menjelajahi repositori templat

Templat ARM untuk membuat lingkungan di DevTest Labs tersedia dari dua sumber:

  • DevTest Labs memiliki repositori templat ARM publik yang mencakup templat lingkungan yang telah diautentikasi sebelumnya untuk Azure Web Apps, kluster Azure Service Fabric, dan pengembangan farm SharePoint. Templat memiliki parameter input minimal untuk pengalaman memulai yang lancar dengan sumber daya PaaS. Anda dapat menggunakan templat lingkungan publik apa adanya atau menyesuaikannya agar sesuai dengan kebutuhan Anda. Anda juga dapat menyarankan revisi atau penambahan ke templat publik dengan mengirimkan permintaan pull terhadap repositori templat publik GitHub.

  • Anda dapat menyimpan templat lingkungan di repositori GitHub publik atau privat Anda sendiri, dan menambahkan repositori tersebut ke lab Anda untuk membuat templat Anda tersedia untuk semua pengguna lab.

Mengonfigurasi pengaturan lingkungan publik

Anda dapat mengonfigurasi lab Anda untuk mengaktifkan penggunaan templat dari repositori GitHub templat publik. Saat Anda mengaktifkan repositori templat publik untuk lab, pengguna dapat dengan cepat membuat lingkungan lab 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 lab.

Mengatur akses lingkungan publik untuk lab baru

Konfigurasikan akses repositori lingkungan publik untuk lab baru dengan mengikuti langkah-langkah berikut:

  1. Selama proses untuk membuat sumber daya DevTest Labs, pilih tab Pengaturan Dasar.

  2. Atur opsi Lingkungan publik ke Aktif:

    Cuplikan layar yang memperlihatkan cara mengaktifkan repositori lingkungan publik untuk lab selama proses pembuatan lab.

Mengatur akses lingkungan publik untuk lab yang ada

Untuk lab yang ada, atau lab yang Anda buat dengan templat ARM, lingkungan publik mungkin tidak diaktifkan. Anda dapat mengontrol akses ke repositori lingkungan publik untuk lab yang ada dengan opsi Aktifkan Lingkungan Publik untuk lab ini.

Ikuti langkah-langkah ini untuk mengaktifkan atau menonaktifkan akses repositori lingkungan publik untuk lab yang ada:

  1. Di portal Azure, buka sumber daya lab DevTest Labs tempat Anda ingin mengatur akses lingkungan publik.

  2. Pada halaman Gambaran Umum lab Anda, perluas bagian Pengaturan di menu sebelah kiri, dan pilih Konfigurasi dan kebijakan.

  3. Pada halaman Konfigurasi dan kebijakan , perluas bagian Basis komputer virtual di menu sebelah kiri, dan pilih Lingkungan publik.

  4. Pada halaman Lingkungan publik, atur opsi Aktifkan Lingkungan Publik untuk lab ini ke Ya:

    Cuplikan layar yang memperlihatkan cara mengaktifkan semua repositori lingkungan publik untuk sumber daya lab yang ada.

  5. Pilih Simpan.

Pilih templat lingkungan publik yang tersedia

Saat Anda mengatur opsi Aktifkan Lingkungan Publik untuk lab ini untuk mengontrol akses ke lingkungan publik untuk lab Anda, semua templat lingkungan dipilih secara default. Pengaturan opsi memungkinkan atau melarang akses ke semua lingkungan berdasarkan pilihan Anda. Anda dapat menggunakan kotak centang pilihan dalam daftar untuk menentukan lingkungan mana yang dapat diakses pengguna Anda.

Ikuti langkah-langkah ini untuk mengizinkan akses hanya ke lingkungan tertentu untuk lab:

  1. Pada halaman Lingkungan publik, atur opsi Aktifkan Lingkungan Publik untuk lab ini ke Ya.

  2. Batal pilih lingkungan tertentu dalam daftar untuk membuatnya tidak tersedia untuk pengguna lab:

    Cuplikan layar yang memperlihatkan cara membatalkan pilihan repositori lingkungan publik untuk lab guna menonaktifkan akses bagi pengguna.

  3. Pilih Simpan.

Konfigurasikan hak pengguna lingkungan

Secara default, pengguna lab diberi peran Pembaca di repositori lingkungan publik. Mereka tidak dapat mengubah sumber daya lingkungan, dan tidak dapat menghentikan atau memulai sumber daya.

Gunakan langkah-langkah berikut untuk memberi pengguna lab peran Kontributor dan memungkinkan mereka mengedit sumber daya lingkungan:

  1. Di portal Azure, buka sumber daya lab DevTest Labs tempat Anda ingin menyesuaikan penetapan peran pengguna.

  2. Pada halaman Gambaran Umum lab Anda, perluas bagian Pengaturan di menu sebelah kiri, dan pilih Konfigurasi dan kebijakan.

  3. Pada halaman Konfigurasi dan kebijakan , perluas bagian Pengaturan di menu sebelah kiri, dan pilih Pengaturan lab.

  4. Pada halaman Pengaturan lab, atur opsi Hak pengguna grup sumber daya akses>lingkungan ke Kontributor:

    Cuplikan layar yang memperlihatkan cara mengatur izin peran Kontributor untuk pengguna lab di DevTest Labs.

  5. Pilih Simpan.

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.

Pemilik dan administrator lab dapat menggunakan Azure PowerShell untuk membuat VM dan lingkungan dari templat ARM. Anda juga dapat mengotomatiskan penyebaran melalui Azure CLI dengan menggunakan perintah az deployment group create untuk membuat lingkungan. Untuk informasi selengkapnya, lihat Menyebarkan sumber daya dengan templat ARM dan Azure CLI.

Catatan

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

Otomatiskan penyebaran templat lingkungan ARM dengan Azure PowerShell dengan langkah-langkah berikut:

  1. Simpan templat lingkungan ARM ke dalam repositori GitHub.

  2. Tambahkan repositori templat ARM GitHub ke lab Anda.

  3. Simpan skrip PowerShell berikut ke komputer Anda dengan nama file 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 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."
    
  4. Perbarui tempat penampung berikut dalam skrip dengan nilai lab Anda sendiri:

    • SubscriptionId
    • LabName
    • ResourceGroupName
    • RepositoryName
    • TemplateName (folder templat di repositori GitHub)
    • EnvironmentName

    Cuplikan berikut menunjukkan cara menjalankan skrip dengan contoh nilai parameter:

    ./deployenv.ps1 -SubscriptionId "000000000-0000-0000-0000-0000000000000" -LabName "mydevtestlab" -ResourceGroupName "mydevtestlabRG000000" -RepositoryName "myRepository" -TemplateName "ARM template folder name" -EnvironmentName "myNewEnvironment"
    
  5. Jalankan skrip.