Alıştırma - Azure PowerShell’de betikleri kullanarak Azure Kaynağı oluşturma
Ö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]
Şimdi PowerShell'le yeni bir Azure VM'si oluşturalım.
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.
Bir kullanıcı adı ve parola oluşturun, ardından Enter tuşuna basın. PowerShell, VM'nizi oluşturmaya başlar.
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>)
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}
Nokta (
.
) gösterimiyle karmaşık nesnelere ulaşabilirsiniz. Örneğin, HardwareProfile bölümüyle ilişkili nesnedekiVMSize
özellikleri görmek için aşağıdaki komutu çalıştırın:$vm.HardwareProfile
Veya disklerden biriyle ilgili bilgi almak için aşağıdaki komutu çalıştırın:
$vm.StorageProfile.OsDisk
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
Ş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>
IP adresi sayesinde, SSH ile VM'ye bağlanabilirsiniz. Örneğin, kullanıcı adını
bob
kullandıysanız ve IP adresi ise205.22.16.5
, bu komutu çalıştırmak Linux makinesine bağlanır:ssh bob@205.22.16.5
girerek
exit
oturumu 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.
Ağ arabirimini silin:
$vm | Remove-AzNetworkInterface –Force
Yönetilen işletim sistemi disklerini silin:
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDisk -Force
Ardından sanal ağı silin:
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetwork -Force
Ağ güvenlik grubunu silin:
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroup -Force
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.