Alıştırma - Azure PowerShell’de betikleri kullanarak Azure Kaynağı oluşturma

Tamamlandı

Özgün senaryomuzu hatırlayın: CRM yazılımımızı test etmek için VM'ler oluşturma. Yeni bir derleme sağlandığında, temiz bir görüntüden tam yükleme deneyimini test edebilmek için yeni bir VM'yi devreye sokmak isteriz. bitirdiğimizde VM'yi silmek istiyoruz.

Şimdi vm oluşturmak için komutları deneyelim.

Azure PowerShell ile Linux VM oluşturma

Azure korumalı alanını kullandığımızdan kaynak grubu oluşturmanız gerekmez. Bunun yerine [sandbox resource group name] kaynak grubunu kullanın. Bunun yanı sıra konum kısıtlamalarına da dikkat edin.

Şimdi PowerShell'le yeni bir Azure VM'si oluşturalım.

  1. VM oluşturmak için New-AzVm cmdlet'ini kullanın.

    • [sandbox resource group name] kaynak grubunu kullanın.

    • Sanal makineye bir ad verin. Genellikle, VM'nin, konumun ve (birden fazla varsa) örnek numarasının amaçlarını tanımlayan anlamlı bir şey kullanmak istersiniz. "Doğu ABD'de TEST VM'sini, örnek 1" için "testvm-eus-01" kullanırız. VM'yi yerleştirdiğiniz yere göre kendi adınızı yazın.

    • Azure korumalı alanında bulunan aşağıdaki listeden size yakın bir konum seçin. Kopyala ve yapıştır kullanıyorsanız aşağıdaki örnek komuttaki değeri değiştirdiğinizden emin olun.

      • westus2
      • Orta Güney ABD
      • centralus
      • eastus
      • westeurope
      • southeastasia
      • japaneast
      • Güney Brezilya
      • australiasoutheast
      • centralindia
    • Görüntü için "Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest" kullanın. Bu görüntü Ubuntu Linux'tır.

    • Get-Credential cmdlet'ini kullanın ve sonuçları Credential parametresine verin.

      Önemli

      Kullanıcı adı ve parola sınırlamaları için Bkz. Linux VM SSS. Parolalar 12 - 123 karakter uzunluğunda olmalı ve aşağıdaki dört karmaşıklık gereksiniminden üçünün karşılanması gerekir:

      • Küçük harfli karakterlere sahip
      • Büyük harfli karakterlere sahip
      • Rakam içermeli
      • Özel karakter içermeli (Regex eşleşmesi [\W_])
    • parametresini -OpenPorts ekleyin ve bağlantı noktası olarak "22" geçirin. Bu bağlantı noktası, makineye SSH eklememizi sağlar.

    • Bir genel IP adresi adı oluşturun. Makinede oturum açmak üzere statik IP adresinizi oluşturmak ve bulmak için bu adı kullanırsınız.

    New-AzVm -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name "testvm-eus-01" -Credential (Get-Credential) -Location "eastus" -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest -OpenPorts 22 -PublicIpAddressName "testvm-eus-01"
    

    İpucu

    Komutları panoya kopyalamak için Kopyala düğmesini kullanabilirsiniz. Yapıştırmak için Cloud Shell terminalinde yeni bir satıra sağ tıklayıp Yapıştır'ı seçin veya Shift+Insert klavye kısayolunu (macOS üzerinde⌘+V) kullanın.

  2. Bir kullanıcı adı ve parola oluşturun, ardından Enter tuşuna basın. PowerShell, VM'nizi oluşturmaya başlar.

  3. VM oluşturma işleminin tamamlanması birkaç dakika sürer. İşlem tamamlandığında sorgulayabilir ve VM nesnesini bir değişkene ($vm) atayabilirsiniz.

    $vm = (Get-AzVM -Name "testvm-eus-01" -ResourceGroupName <rgn>[sandbox resource group name]</rgn>)
    
  4. VM hakkındaki bilgileri döküme almak için değerini sorgula.

    $vm
    

    Aşağıdaki çıkışa benzer bir şey görmeniz gerekir:

    ResourceGroupName : <rgn>[sandbox resource group name]</rgn>
    Id                : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/testvm-eus-01
    VmId              : 00000000-0000-0000-0000-000000000000
    Name              : testvm-eus-01
    Type              : Microsoft.Compute/virtualMachines
    Location          : eastus
    Tags              : {}
    HardwareProfile   : {VmSize}
    NetworkProfile    : {NetworkInterfaces}
    OSProfile         : {ComputerName, AdminUsername, LinuxConfiguration, Secrets}
    ProvisioningState : Succeeded
    StorageProfile    : {ImageReference, OsDisk, DataDisks}
    
  5. Nokta (.) gösterimiyle karmaşık nesnelere ulaşabilirsiniz. Örneğin, HardwareProfile bölümüyle ilişkili nesnedeki VMSize özellikleri görmek için aşağıdaki komutu çalıştırın:

    $vm.HardwareProfile
    
  6. Veya disklerden biriyle ilgili bilgi almak için aşağıdaki komutu çalıştırın:

    $vm.StorageProfile.OsDisk
    
  7. Hatta VM nesnesini başka cmdlet'lere bile geçirebilirsiniz. Örneğin, aşağıdaki komutu çalıştırmak vm'niz için tüm kullanılabilir boyutları gösterir:

    $vm | Get-AzVMSize
    
  8. Şimdi genel IP adresinizi almak için aşağıdaki komutu çalıştırın:

    az vm list-ip-addresses -n testvm-eus-01 -g <rgn>[sandbox resource group name]</rgn>
    
  9. IP adresi sayesinde, SSH ile VM'ye bağlanabilirsiniz. Örneğin, kullanıcı adını bobkullandıysanız ve IP adresi ise 205.22.16.5, bu komutu çalıştırmak Linux makinesine bağlanır:

    ssh bob@205.22.16.5
    

    girerek exitoturumu kapatın.

VM silme

Daha fazla komut denemek için VM'yi silelim. İlk olarak kapatmamız gerekir (devam etmek isteyip istemediğiniz sorulursa Y girin):

Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName

VM durdurulduğunda, cmdlet'ini Remove-AzVM çalıştırarak VM'yi silin (devam etmesi istenirse Y girin):

Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName

Kaynak grubunuzdaki tüm kaynakları listelemek için şu komutu çalıştırın:

Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Format-Table

Tüm kaynakların (diskler, sanal ağlar vb.) hala mevcut olduğunu görmeniz gerekir.

Microsoft.Compute/disks
Microsoft.Network/networkInterfaces
Microsoft.Network/networkSecurityGroups
Microsoft.Network/publicIPAddresses
Microsoft.Network/virtualNetworks

Remove-AzVM Komutu yalnızca VM'yi siler. Diğer kaynakların hiçbirini temizlemez. Bu noktada, büyük olasılıkla kaynak grubunun kendisini silip onunla işimiz biter. Ama şimdi alıştırmayı takip edelim ve bunu el ile temizleyelim. Komutlarda bir desen olduğunu göreceksiniz.

  1. Ağ arabirimini silin:

    $vm | Remove-AzNetworkInterface –Force
    
  2. Yönetilen işletim sistemi disklerini silin:

    Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDisk -Force
    
  3. Ardından sanal ağı silin:

    Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetwork -Force
    
  4. Ağ güvenlik grubunu silin:

    Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroup -Force
    
  5. Son olarak genel IP adresini silin:

    Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddress -Force
    

Oluşturulan tüm kaynakları yakalamamız gerekirdi. Emin olmak için kaynak grubunu denetleyin. Burada birçok el ile komut gerçekleştirdik, ancak betik yazmak daha iyi bir yaklaşım olurdu. Daha sonra vm oluşturmak veya silmek için bu mantığı yeniden kullanabiliriz. Şimdi PowerShell ile betik oluşturmayı gözden geçirelim.