Öğretici: Azure PowerShell ile Windows VM’leri Oluşturma ve Yönetme

Şunlar için geçerlidir: ✔️ Windows VM'leri

Azure sanal makineleri tam olarak yapılandırılabilir ve esnek bir bilgi işlem ortamı sağlar. Bu öğretici sanal makine (VM) boyutu seçme, VM görüntüsü seçme ve VM dağıtma gibi temel Azure sanal makine dağıtımı görevlerini kapsar. Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:

  • VM oluşturma ve bir VM’ye bağlanma
  • VM görüntülerini seçme ve kullanma
  • Belirli VM boyutlarını görüntüleme ve kullanma
  • VM’yi yeniden boyutlandırma
  • VM durumunu görüntüleme ve anlama

Azure Cloud Shell’i başlatma

Azure Cloud Shell, bu makaledeki adımları çalıştırmak için kullanabileceğiniz ücretsiz bir etkileşimli kabuktur. Yaygın Azure araçları, kabuğa önceden yüklenmiştir ve kabuk, hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır.

Cloud Shell'i açmak için kod bloğunun sağ üst köşesinden Deneyin'i seçmeniz yeterlidir. İsterseniz https://shell.azure.com/powershell adresine giderek Cloud Shell'i ayrı bir tarayıcı sekmesinde de başlatabilirsiniz. Kopyala’yı seçerek kod bloğunu kopyalayın, Cloud Shell’e yapıştırın ve Enter tuşuna basarak çalıştırın.

Kaynak grubu oluşturma

New-AzResourceGroup komutuyla bir kaynak grubu oluşturun.

Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Bir sanal makineden önce bir kaynak grubu oluşturulmalıdır. Bu örnekte, EastUS bölgesinde myResourceGroupVM adlı bir kaynak grubu oluşturulur:

New-AzResourceGroup `
   -ResourceGroupName "myResourceGroupVM" `
   -Location "EastUS"

Kaynak grubu, bu öğretici boyunca görülebileceği gibi bir VM oluşturulurken veya değiştirilirken belirtilir.

VM oluşturma

VM oluştururken işletim sistemi görüntüsü, ağ yapılandırması ve yönetici kimlik bilgileri gibi çeşitli seçenekler sağlanır. Bu örnekte Windows Server 2016 Datacenter'ın varsayılan sürümünü çalıştıran myVM adlı bir VM oluşturulur.

Get-Credential komutuyla VM’de yönetici hesabı için gereken kullanıcı adı ve parolasını ayarlayın:

$cred = Get-Credential

New-AzVM ile VM oluşturun.

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress" `
    -Credential $cred

VM’ye bağlanma

Dağıtım tamamlandıktan sonra VM ile bir uzak masaüstü bağlantısı oluşturun.

VM'nin genel IP adresini döndürmek için aşağıdaki komutları çalıştırın. Sonraki bir adımda web bağlantısını test etmek üzere tarayıcınızla bağlanabilmek için bu IP Adresini not alın.

Get-AzPublicIpAddress `
   -ResourceGroupName "myResourceGroupVM"  | Select IpAddress

VM ile bir uzak masaüstü oturumu oluşturmak için yerel makinenizde aşağıdaki komutu kullanın. IP adresini, sanal makinenizin publicIPAddress değeriyle değiştirin. İstendiğinde, VM oluşturulurken kullanılan kimlik bilgilerini girin.

mstsc /v:<publicIpAddress>

Windows Güvenliği penceresinde Diğer seçenekler'i ve ardından Başka bir hesap kullanın'ı seçin. VM için oluşturduğunuz kullanıcı adı ve parolayı yazıp Tamam’a tıklayın.

Market resimlerini anlama

Azure Market, yeni VM oluşturmak için kullanılabilecek çok sayıda görüntü içerir. Önceki adımlarda, Windows Server 2016 Datacenter görüntüsü kullanılarak bir VM oluşturuldu. Bu adımda, PowerShell modülü markette diğer Windows görüntülerini aramak için kullanılır, bu da yeni sanal makinelerin toplandığı yer olarak ayrıca kullanılabilir. Bu işlem, görüntüyü tanımlamak için yayımcının, teklifin, SKU’nun ve isteğe bağlı olarak bir sürüm numarasının bulunmasını kapsar.

Görüntü yayımcılarının listesini döndürmek için Get-AzVMImagePublisher komutunu kullanın:

Get-AzVMImagePublisher -Location "EastUS"

Görüntü tekliflerinin listesini döndürmek için Get-AzVMImageOffer kullanın. Bu komutla, döndürülen liste belirtilen MicrosoftWindowsServer adlı yayımcı üzerinde filtrelenir:

Get-AzVMImageOffer `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer"

Sonuçlar şu örneğe benzer olacaktır:

Offer             PublisherName          Location
-----             -------------          --------
Windows-HUB       MicrosoftWindowsServer EastUS
WindowsServer     MicrosoftWindowsServer EastUS
WindowsServer-HUB MicrosoftWindowsServer EastUS

Get-AzVMImageSku komutu, görüntü adlarının listesini döndürmek için yayımcıyı ve teklif adını filtreler.

Get-AzVMImageSku `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer" `
   -Offer "WindowsServer"

Sonuçlar şu örneğe benzer olacaktır:

Skus                                      Offer         PublisherName          Location
----                                      -----         -------------          --------
2008-R2-SP1                               WindowsServer MicrosoftWindowsServer EastUS  
2008-R2-SP1-smalldisk                     WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter                        WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter-smalldisk              WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core               WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core-smalldisk     WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers           WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers-smalldisk WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-RDSH                 WindowsServer MicrosoftWindowsServer EastUS
2016-Nano-Server                          WindowsServer MicrosoftWindowsServer EastUS

Bu bilgiler, belirli bir görüntüye sahip bir VM’yi dağıtmak için kullanılabilir. Bu örnek, Kapsayıcılar’ı içeren Windows Server 2016 görüntüsünün en son sürümünü kullanarak VM'yi dağıtır.

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM2" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress2" `
    -ImageName "MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest" `
    -Credential $cred `
    -AsJob

PowerShell komut istemlerinin size döndürülmesi için -AsJob parametresi VM’yi arka plan görevi olarak oluşturur. Get-Job cmdlet'ini kullanarak arka plan işlerinin ayrıntılarını görüntüleyebilirsiniz.

VM boyutlarını anlama

VM boyutu, VM'nin kullanımına sunulan CPU, GPU ve bellek gibi işlem kaynaklarının miktarını belirler. Sanal makineler iş yüküne uygun bir VM boyutu kullanılarak oluşturulmalıdır. İş yükü artarsa, mevcut sanal makine de yeniden boyutlandırılabilir.

VM Boyutları

Aşağıdaki tabloda boyutlar kullanım durumlarına göre kategorilere ayrılmaktadır.

Tür Ortak boyutlar Açıklama
Genel amaçlı B, Dsv3, Dv3, DSv2, Dv2, Av2, DC Dengeli CPU/bellek. Küçük ve orta ölçekli uygulama ve veri çözümlerini geliştirmek/test etmek için idealdir.
İşlem için iyileştirilmiş Fsv2 Yüksek CPU/bellek. Orta düzey trafiğe sahip uygulamalar, ağ gereçleri ve toplu işlemler için idealdir.
Bellek için iyileştirilmiş Esv3, Ev3, M, DSv2, Dv2 Yüksek bellek/çekirdek. İlişkisel veritabanı, orta veya büyük boyutlu önbellekler ve bellek içi analiz için idealdir.
Depolama için iyileştirilmiş Lsv2, Ls Yüksek disk aktarım hızı ve GÇ. Büyük Veri, SQL ve NoSQL veritabanları için ideal.
GPU NV, NVv2, NC, NCv2, NCv3, ND Ağır grafik işlemleri ile video düzenleme işlemleri için özel olarak hedeflenen VM’ler.
Yüksek performans H İşleme düzeyi yüksek olan isteğe bağlı ağ arabirimleri (RDMA) içeren VM’lerimiz, şimdiye kadarki en güçlü CPU ile sunuluyor.

Kullanılabilir VM boyutlarını bulma

Belirli bir bölgede kullanılabilen VM boyutlarının listesini görmek için Get-AzVMSize komutunu kullanın.

Get-AzVMSize -Location "EastUS"

VM’yi yeniden boyutlandırma

VM dağıtıldıktan sonra, kaynak ayırmayı artırmak veya azaltmak için yeniden boyutlandırılabilir.

Vm'yi yeniden boyutlandırmadan önce, istediğiniz boyutun geçerli VM kümesinde kullanılabilir olup olmadığını denetleyin. Get-AzVMSize komutu bir boyut listesi döndürür.

Get-AzVMSize -ResourceGroupName "myResourceGroupVM" -VMName "myVM"

Boyut kullanılabilir durumdaysa VM, güç açık durumundan yeniden boyutlandırılabilir, ancak işlem sırasında yeniden başlatılır.

$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_DS3_v2"
Update-AzVM `
   -VM $vm `
   -ResourceGroupName "myResourceGroupVM"

İstediğiniz boyut geçerli kümede kullanılamıyorsa, yeniden boyutlandırma işleminin gerçekleşebilmesi için önce VM'nin serbest bırakılması gerekir. VM'nin serbest bırakılmasıyla geçici diskteki tüm veriler kaldırılır ve statik IP adresi kullanılmadığı sürece genel IP adresi değişir.

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force
$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_E2s_v3"
Update-AzVM -VM $vm `
   -ResourceGroupName "myResourceGroupVM"
Start-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -Name $vm.name

VM güç durumları

Bir Azure VM’si birçok güç durumuna sahip olabilir.

Güç Durumu Açıklama
Başlatılıyor Sanal makine başlatılıyor.
Çalışma Sanal makine çalışıyor.
Durduruluyor Sanal makine durduruluyor.
Durduruldu VM durduruldu. Durduruldu durumundaki sanal makinelere bilgi işlem ücretleri uygulanmaya devam eder.
Serbest bırakılıyor VM serbest bırakılıyor.
Serbest bırakıldı VM'nin hiper yöneticiden kaldırıldığını ancak denetim düzleminde hala kullanılabilir olduğunu gösterir. Deallocated durumundaki sanal makinelere bilgi işlem ücretleri uygulanmaz.
- VM'nin güç durumu bilinmiyor.

Belirli bir VM'nin durumunu almak için Get-AzVM komutunu kullanın. VM ve kaynak grubu için geçerli bir ad belirttiğinizden emin olun.

Get-AzVM `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Status | Select @{n="Status"; e={$_.Statuses[1].Code}}

Çıkış şu örneğe benzer olacaktır:

Status
------
PowerState/running

Aboneliğinizdeki tüm VM'lerin güç durumunu almak için Sanal Makineler - List All API with parameter statusOnly ayarını true olarak ayarlayın.

Yönetim görevleri

Bir VM'nin yaşam döngüsü sırasında, VM'yi başlatma, durdurma veya silme gibi yönetim görevlerini çalıştırmak isteyebilirsiniz. Ayrıca, yinelenen veya karmaşık görevleri otomatikleştirmek için betikler oluşturmak isteyebilirsiniz. Azure PowerShell kullanarak, birçok ortak yönetim görevi komut satırından veya betikler içinde çalıştırılabilir.

VM durdurma

Stop-AzVM ile vm'leri durdurma ve serbest bırakma:

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force

VM'yi sağlanan bir durumda tutmak istiyorsanız, - StayProvisioned parametresini kullanın.

VM başlatma

Start-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM"

VM kaynaklarını silme

Bir VM'yi silebilirsiniz, ancak varsayılan olarak bu işlem yalnızca VM kaynağını siler; VM'nin kullandığı diskleri ve ağ kaynaklarını silmez. VM'yi sildiğinizde diğer kaynakları silmek için varsayılan davranışı değiştirebilirsiniz. Daha fazla bilgi için bkz. VM'yi ve ekli kaynakları silme.

Sonraki adımlar

Bu öğreticide, aşağıdakiler gibi temel VM oluşturma ve yönetim görevlerini öğrendiniz:

  • VM oluşturma ve bir VM’ye bağlanma
  • VM görüntülerini seçme ve kullanma
  • Belirli VM boyutlarını görüntüleme ve kullanma
  • VM’yi yeniden boyutlandırma
  • VM durumunu görüntüleme ve anlama

VM diskleri hakkında bilgi edinmek için sonraki öğreticiye ilerleyin.