PSHyperV : PowerShell yönetim kütüphanesi

Codeplex yazılarımıza yine bir projenin tanıtımı ile devam ediyoruz. Bu seferki projemiz, IT Pro tarafını ilgilendiriyor ve Hyper-V yönetimi ile ilgili : PowerShell management library for Hyper-V

PowerShell management library for Hyper-V (pshyperv); Windows Server 2008 içerisinde bütünleşik olarak yeralan, donanım destekli (hardware-assisted) sanallaştırma imkanı sağlayan Hyper-V rolü için komut satırından ve/veya kaydedilmiş script'ler ile yönetim imkanı sağlayan bir araç setidir. Microsoft çalışanlarından James O'Neill tarafından oluşturularak açık kaynaklı bir proje olarak Codeplex'e eklenmiştir.

Araç setinin detaylarına geçmeden kısaca PowerShell'den bahsetmek gerekirse : DOS zamanından beri varolan komut satırı ile yapılan kısıtlı işlemleri genişletmek için Windows 2000 ile ortaya çıkan Windows Scripting Host'un (WSH) da yetersiz kalması ile 2006 yılında öncelikle Windows Server 2003 için ortaya çıkan bir komut satırı ortamı ve script dilidir. Başlangıç olarak 130'dan fazla komut satırı aracı ile başlamış, öncelikli olarak işletim sistemlerini hedeflemiştir. Windows XP SP2, Windows Server 2003 SP1, Windows Vista, Windows Server 2008 işletim sistemlerinde çalışan PowerShell bundan sonra çıkacak işletim sistemlerinde de çalışmaya devam edecektir. PowerShell, sadece işletim sistemlerinde değil hemen her Microsoft ürünün yeni versiyonu için de PowerShell desteği eklenmektedir. Örneğin Exchange 2007'de bazı işlemler sadece PowerShell ile yapılabilmektedir.

PowerShell hakkında bu kadar bilgiden sonra projemize dönecek olursak; bu kütüphane yardımı ile Hyper-V rolünü yönetimsel araçlara gerek kalmadan komut satırı ile yönetmek ve script'ler hazırlayarak yönetimi otomatikleştirmek mümkün. Örneğin New-VM komutu ile yeni bir sanal makine oluşturabilir, Set-VMMemory komutu ile sanal makinenin RAM miktarı değiştirebilir.

PSHyperV kütüphanesinden nasıl yararlanabileceğimize göz atalım : Öncelikle proje sayfasındaki Downloads linklerinden birine tıklayarak kütüphaneyi indirebileceğimiz sayfaya ulaşıyoruz. Bu sayfada indirebileceğimiz iki adet dosya görüntüleniyor. hyperv.zip isimli dosya, kütüphaneyi çalıştırmak için gerekli olan dosyaları içeriyor. Pshyperv.pdf dosyası ise kütüphane ile ilgili genel bilgiler ve komutların nasıl kullanılacağı ile ilgili bilgiler içeren yardım dosyası.

hyperv.zip linkine tıklayıp görüntülenen lisans anlaşmasını I Agree'ye tıklayarak kabul edip dosyayı indirilebilir. İndirdiğimiz zip dosyasının içerisinde hyperv.ps1 ve hyperv.format.ps1xml dosyaları yer alıyor. hyperv.ps1 dosyası kütüphanede yeralan komutları çalıştırabilmemiz için gerekli olan PowerShell script dosyası. hyperv.format.ps1xml dosyası ise bu komutlar ile ilgili tanımların yer aldığı XML dosyası. Bu dosyaları çalıştırabilmek için zip dosyası içerisinden C:\hyperv gibi bir klasöre kopyalamak gerekiyor.

Kütüphaneyi kullanmak için PowerShell konsolu açıp içerisinden dosyaların yer aldığı klasöre gidip  ". .\hyperv.ps1" komutunu çalıştırmak gerekiyor. Bu komutu çalıştırdıktan sonra kütüphane içerisinde yeralan komutlar kullanılabiliyor.  



Örneğin aşağıdaki komutları girerek 1 GB RAM'li, 2 işlemcili, 20 GB diskli ve sanalmakine1 isimli bir makine oluşturmak mümkün :

- New-VM -Name "sanalmakine1"
- Set-VMMemory -vm "sanalmakine1" -memory 1gb
- Set-VMCPUCount "sanalmakine1" 2
- Add-VMNewHardDisk -vm "sanalmakine1" -size 20gb -vhdpath "V:\VM\VirtualDisks\sanalmakine1.vhd"



NOT 1 : PSHyperV kütüphanesini indirip çalıştırmayı deneyince "File C:\hyperv\hyperv.ps1 cannot be loaded because the execution of scripts is disabled on this system." gibi bir hata mesajı görüntülenebilir.



Bu hata mesajı Internet'ten indirilen PowerShell script'lerinin çalışmasının güvenlik nedeniyle engellenmesiyle oluşmaktadır. Bu tür script'ler PowerShell konsolunda "Set-ExecutionPolicy Unrestricted" komutu girilerek çalıştırılabilir. Zararlı olabilecek, güvenilmeyen kaynaktan indirilen bir script'in çalışmaması için "Set-ExecutionPolicy Restricted" komutunu girilmelidir.

NOT 2 : Bu kütüphanenin daha geniş ve kapsamlı versiyonu System Center Virtual Machine Manager (SCVMM) ürünü içerisinde yer almaktadır. Hyper-V rolünü daha iyi yönetebilmek için ortaya çıkartılan SCVMM'deki kütüphane ile sanal makineler ile ilgili daha detaylı ayarlar yapılabilmektedir.
Comments