Alıştırma - Betik kullanarak Azure PowerShell ile Azure Kaynakları oluşturma

Tamamlandı

Bu ünitede Linux yönetici araçları geliştiren bir şirket örneğiyle devam edin. Amaç, olası müşterilerin yazılımınızı test etmelerine olanak sağlamak için Linux sanal makinelerini (VM) kullanmaktır. Zaten ayarlanmış bir kaynak grubuyla vm'leri oluşturmanın zamanı geldi.

Şirketiniz büyük bir Linux ticaret fuarında bir standın güvenliğini sağladı. Her birinin ayrı bir Linux VM'sine bağlı üç terminali olan bir tanıtım alanı ayarlamayı planlıyorsunuz. Vm'leri silmeniz ve her günün sonunda yeniden oluşturmanız gerekir, böylece her sabah yeni başlarlar. Uzun bir günün ardından VM'leri el ile oluşturmak hataya açıktır, bu nedenle VM oluşturma işlemini otomatikleştirmek için bir PowerShell betiği yazmanız gerekir.

Sanal makine oluşturmak için betik yazma

Azure Cloud Shell'de sanal makine oluşturmayı otomatik hale getiren bir betik yazmak için bu adımları izleyin.

Not

Genellikle kimlik bilgilerinizi Connect-AzAccountkullanarak Azure'da kimlik doğrulaması yaparsınız, ancak Cloud Shell'de kimliğiniz zaten doğrulanmıştır, bu nedenle bu adım gereksizdir.

  1. Giriş klasörünüze geçin:

    Set-Location -Path $HOME
    
  2. Yeni bir PowerShell betik dosyası oluşturun:

    New-Item -Name ConferenceDailyReset.ps1 -ItemType File
    
  3. Tümleşik Visual Studio Code (VS Code) düzenleyicisini açın:

    code ./ConferenceDailyReset.ps1
    

    İpucu

    Tümleşik Cloud Shell düzenleyicisi, bu düzenleyicilerden birini kullanmayı tercih ediyorsanız vim, nano ve emac'leri de destekler.

  4. Kaynak grubu adınız için bir parametre tanımlayın:

    Betiğinize aşağıdaki satırı ekleyin:

    param (
        [string]$ResourceGroupName
    )
    
  5. VM yöneticisi kimlik bilgilerini iste:

    $adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
    
  6. Üç kez yürütmek için bir döngü oluşturun:

    $vms = 'web','app','sql'
    foreach ($vm in $vms) {
        $vm
    }
    
  7. Döngüde, her VM'nin adını döndür:

    Write-Output "Creating VM: $vm"
    
  8. Değişkenini $vm kullanarak bir VM oluşturun:

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vm
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
    
  9. Dosyayı kaydedin:

    Betiği kaydetmek için düzenleyicinin sağ üst köşesindeki üç nokta (...) bağlam menüsünü veya Ctrl + S klavye kısayolunu kullanın.

Tamamlanan betik

Tamamlanan betik aşağıdaki örnekteki gibi görünmelidir:

param (
    [string]$ResourceGroupName
)

$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'

$vms = 'web','app','sql'

foreach ($vm in $vms) {

    Write-Output "Creating VM: $vm"

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vm
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
}

Betiğinizin önceki örnekteki kod gibi göründüğünü onayladıktan sonra düzenleyicinin sağ üst köşesindeki üç nokta (...) bağlam menüsünü veya Ctrl + Q klavye kısayolunu kullanarak düzenleyiciyi kapatın.

Betiği çalıştırın

  1. Aşağıdaki komutu kullanarak betiği yürütür:

    ./ConferenceDailyReset.ps1 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  2. Tamamlanmasını bekleyin. Betiğin tamamlanması birkaç dakika sürer.

  3. VM'leri doğrulayın. Betik tamamlandıktan sonra, kaynak grubundaki VM'leri listeleyerek başarıyla tamamlandığını doğrulayın:

    Get-AzVM -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

    Her biri benzersiz ada sahip üç VM göreceksiniz.

Her biri belirli bir kaynak grubundaki üç VM'nin oluşturulmasını otomatikleştirerek fuardaki günlük tanıtımlara hazır olmalarını sağlayan bir betik başarıyla oluşturdunuz. Betik kısa ve basit olsa da, Azure portalı aracılığıyla el ile gerçekleştirilirse zaman alıcı ve hataya açık olacak bir işlemi önemli ölçüde hızlandırır.