Betik kullanarak Azure PowerShell ile Azure Kaynakları oluşturma

Tamamlandı

Karmaşık veya yinelenen görevler el ile gerçekleştirildiğinde zaman alabilir ve hataya açık olabilir. Kuruluşlar maliyetleri azaltmak ve hatalardan kaçınmak için bu görevleri otomatikleştirmeyi tercih eder.

Otomasyon, yazılımınızı sürekli olarak silinmesi ve yeniden oluşturulması gereken birden çok Linux sanal makinesinde (VM) test ettiğiniz Müşteri İlişkileri Yönetimi (CRM) örneğinde önemlidir. VM oluşturmayı otomatikleştirmek için PowerShell betiği kullanmak, bunları her seferinde el ile oluşturmaktan çok daha verimli ve güvenilirdir.

Sanal makine oluşturma işleminin ötesinde, betiğinizin diğer birkaç gereksinimi karşılaması gerekir:

  • Birden çok VM oluşturma: Benzersiz olarak adlandırılmış birden çok VM oluşturmak için kullanın New-AzVM .
  • Kaynak grubu parametresi: Betiğin kaynak grubunun adını parametre olarak kabul etmesine izin verin.

Bu ünitede, bu gereksinimleri karşılayan bir PowerShell betiği yazmayı ve yürütmeyi öğreneceksiniz.

PowerShell betiği nedir?

PowerShell betiği, komutlar ve denetim yapıları içeren bir metin dosyasıdır. Komutlar cmdlet'lerin çağrılarıdır ve denetim yapıları da PowerShell tarafından sağlanan döngüler, değişkenler, parametreler, açıklamalar vb. programlama özellikleridir.

PowerShell betik dosyalarının dosya uzantısı vardır .ps1 . Bu dosyaları herhangi bir metin düzenleyicisini kullanarak oluşturabilir ve kaydedebilirsiniz.

İpucu

PowerShell betikleri yazıyorsanız ücretsiz olan ve Windows, Linux ve macOS'ta desteklenen Visual Studio Code (VS Code) kullanmayı göz önünde bulundurun. VS Code için PowerShell uzantısı söz dizimi vurgulama ve kullanılabilir cmdlet'lerin listesi gibi özellikler sunar.

Aşağıdaki ekran görüntüsü, Azure'a bağlanmak ve sanal makine oluşturmak için örnek betik içeren bir VS Code örneğidir:

Azure'da sanal makine oluşturmak için PowerShell betiği içeren VS Code'un ekran görüntüsü.

Bir betik oluşturduktan sonra, geçerli dizin için bir nokta ve ters eğik çizgiden önce gelen dosyanın adını geçirerek bunu PowerShell komut satırından yürütebilirsiniz:

.\myScript.ps1

PowerShell teknikleri

PowerShell, programlama dillerinde yaygın olarak bulunan özellikleri içerir. Değişkenleri tanımlayabilir, dalları ve döngüleri kullanabilir, komut satırı parametrelerini yakalayabilir, işlevler yazabilir, açıklamalar ekleyebilir ve daha fazlasını yapabilirsiniz. Odaklandığınız betik için üç temel özelliğe ihtiyacınız vardır: değişkenler, döngüler ve parametreler.

Değişkenler

PowerShell'de değişkenler dolar işareti ($) kullanılarak bildirilir ve equals (=) işleci kullanılarak atanan değerler kullanılır. Örneğin:

$location = 'eastus'

Bir değişkende depolanan değeri belirlemek için ön ekini $ ve adını kullanın:

$location

Değişkenler nesne barındırabilir. Örneğin, aşağıdaki tanım değişkeni cmdlet'i tarafından döndürülen nesneye Get-Credential ayarlar$adminCredential:

$adminCredential = Get-Credential

Döngüler

PowerShell' de , , Do-WhileForeachDo-Until, ve Whilegibi Forçeşitli döngü yapıları vardır. Döngü Foreach , bir koleksiyondaki bir dizi değer üzerinde döngü yürütmeniz gereken senaryolar için iyi bir seçimdir.

$items = 1..3
foreach ($item in $items) {
    $item
}

Parametreler

PowerShell betiği oluşturduğunuzda betike parametreler ekleyebilir ve betiği yürütürken bu parametreler için değerler belirtebilirsiniz. Örneğin:

.\setupEnvironment.ps1 -VmCount 5 -Location eastus

Betiğin içinde değerleri değişkenler halinde yakalayın. Bu örnekte, parametreler VmCount ve Konum'dur:

param (
    [int]$VmCount,
    [string]$Location
)

Bu parametreleri giriş ve döngü olarak kullanarak verilen parametreleri temel alan bir VM kümesi oluşturabilirsiniz. Bu yaklaşım betiği genel tutar ve aynı kodun yinelenmesinden kaçınıyor.

Teknikleri birleştirme

PowerShell dil özellikleri ve Azure PowerShell cmdlet'lerinin birleşimi, Azure görevlerini otomatikleştirmek için ihtiyacınız olan tüm araçları sağlar. CRM örneğinde, işlemi kolaylaştırmak için parametreli betik ve döngü kullanarak birden çok Linux VM oluşturabilirsiniz. Bu betik, tek adımda karmaşık bir işlem gerçekleştirmenizi sağlar.

Örnek betik

Birden çok VM oluşturmak için değişkenleri, döngüleri ve parametreleri kullanmayı gösteren örnek bir betik aşağıda verilmiştir:

param (
    [int]$VmCount = 3,
    [string]$ResourceGroupName,
    [string]$Location = 'eastus'
)

$adminCredential = Get-Credential

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

foreach ($vm in $vms) {
    $vmName = "testvm-$vm"

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

Betiği derleme

Betiği farklı CreateVMs.ps1 kaydedin ve gerekli parametreleri sağlayarak PowerShell komut satırından çalıştırın:

.\CreateVMs.ps1 -ResourceGroupName <resource-group-name>

Bu betiği kullanarak farklı kaynak gruplarında verimli bir şekilde birden çok VM oluşturabilir, yinelenen görevleri otomatikleştirebilir ve Azure ortamınızda tutarlılık sağlayabilirsiniz.