PowerCLI, Microsoft Powershell komutlarına benzer yazım tarzı olan, Vmware Vsphere ve ESXi sunucularının yönetimini kolaylaştırmayı hedefleyen bir komut satır aracıdır. Aklınızda bir fikir oluşması için yapabileceklerimize basit bir örnek verirsek, aynı anda bütün sanal sunucularınızı kapatabilir ya da bütün sanal sunucularınızın snapshot larını alabiliriz. Aşağıdaki resimde PowerCLI mimarisini gözükmektedir.
Nesne yönelimli programlamanın bel kemiği olan ve
Powershell ile hayatımıza iyice yerleşen “Pipeline – | ” PowerCLI ile de kullanılabilir durumdadır. Yani bir komutun çıktısı, başka bir komutun girdisi olabilmektedir.
PowerCLI ile şuan için 300 den fazla komut çalıştırabilmekteyiz. Bu komutların listesi ve kullanım biçimleri Vmware tarafından poster şeklinde biz kullanıcılarına sunulmaktadır. Posteri ve PowerCLI uygulamasını buradan indirebiliriz.
PowerCLI Gereksinimleri
· İşletim sistemi Gereksinimleri
PowerCLI, Powershell mimarisi üzerine inşa edildiği için sadece Windows işletim sistemlerine kurulabilmektedir. Kurulabilen işletim sistemleri Windows 7 Service Pack 1 (32-bit and 64-bit), Windows Server 2008 R2 Service Pack 1 (32-bit and 64-bit) , Windows XP Service Pack 2 (32-bit and 64-bit) and Service Pack 3 (32-bit).
Ayrıca kurulum yapılacak bilgisayarda .NET 2.0, 3.0, or 3.5 ve Service Pack ve Windows PowerShell 2.0 kurulu olmak zorundadır.
· Desteklenen Vmware Sürümleri
Vmware Vsphere PowerCLI 5.0.1 sürümü ile aşağıdaki platformlar yönetilebilir.
VMware ESXi 5.0, vCenter Server 5.0, VMware ESX 4.1 Update 2 and vCenter Server 4.1 Update 2, VMware ESXi 4.1 Update 2, VMware ESX 4.0 Update 4 and vCenter Server 4.0 Update 4, VMware ESX 4.0i Update 4, VMware ESX 3.5 Update 5, VMware ESXi 3.5 Update 5, VMware VirtualCenter 2.5 Update
Yukarıdaki bilgiler zamanla değişebileceği için güncel bilgileri PowerCLI portalından öğrenebiliriz.
PowerCLI Kurulumu
PowerCLI kurulum dosyamızı çalıştırıyoruz ve Next ile ilerliyoruz.
Patent bilgilerini Next ile geçiyoruz.
Vmware Lisans Sözleşmesini kabul edip Next ile geçiyoruz.
Eğer VCloud bileşenlerinin de yüklenmesini istersek “VCloud Director PowerCLI” seçeneğini seçiyoruz ve Next ile ilerliyoruz.
“Install” butonuna basarak kurulumu başlatıyoruz.
“Finish” ile kurulumu bitiriyoruz.
PowerCLI Kullanımı
· ESXi yada Vcenter sunucusuna bağlanma
Her PowerCLI kullanımı öncesi yapmamız gereken ilk işlem ilgili sunucuya bağlanmak olmalıdır. Bunun için PowerCLI komut satırına aşağıdaki komutları yazıyoruz.
Connect-VIServer -Server “Sunucu Adı yada IP si”
Bağlantı işini kullanıcı etkileşimi olmadan sağlamak istersek
Connect-VIServer -Server “Sunucu Adı yada IP si” -User “Kullanıcı Ismı” -Password “Sifre” komutunu kullanıyoruz. Fakat güvenlik riskini hatırlatmadan geçmek istemiyorum.
· S
Sunucuda bulunan VM bilgileri
Bağlandığımız sunucu tarafından host edilen VM lerin özet bilgilerine ulaşmak için Get-Vm komutunu kullanıyoruz.
· Yukarıdaki bilgileri özeleştirmek istersek “Select” komutunu kullanıyoruz.
· VM lerin açılıp, kapatılması
Sunucu üzerindeki herhangi bir VM i açmak için Get-VM “Vm sunucu ismi”| Start-VM komutunu kullanıyoruz.
Sunucuyu kapatmak içinse Get-VM “Vm sunucu ismi”| Stop-VM –Confirm:$false komutunu kullanıyoruz.
Bu kapatma yöntemi, fiziksel bir sunucunun güç kablosunu çekmek ile eşdeğer olduğu için gerekmedikçe tavsiye edilmez. Eğer sanal sunucularda Vmware Tools yüklü ise
Get-VM “Vm sunucu ismi”| ShutdownGuest-VM –Confirm:$false
komutunu kullanmanız tevsiye edilir.
Bütün sunucuları aynı anda açmak için
Get-VM | ForEach-Object{Start-VM $_.Name}
Bütün sunucuları aynı anda kapatmak için
Get-VM | ForEach-Object{Stop-VM $_.Name –Confirm:$false }
Bütün sunucular kontrollü kapatmak için
Get-VM | ForEach-Object{ ShutdownGuest-VM –Confirm:$false}
· Datastore içinde bulunan diskler ve bağlı oldukları sanal makinelerin listesini öğrenmek
Get-HardDisk -Datastore datastore1 |fl komutunu kullanıyoruz.
PowerCLI ile yapılabilecek işlemler, sistem yöneticisinin hayalleriyle sınırlıdır. Bu yüzden 300 den fazla komutun nasıl çalıştığını makalede göstermek yerine çok kullanışlı olduğunu düşündüğüm ve tavsiye ettiğim Vcheck scriptini tanıtmak istiyorum.
Vcheck için Alan Renouf tarafından hazırlanmış, fakat içerisinde PowerCLI ya destek verenlerinde scriptlerini barındıran ve sanal sunucularımız hakkındaki detaylı bilgileri 50 dan fazla kontrol noktasıyla bize tek bir pencereden sunan güzel bir tool diyebiliriz. Kullanmak için, sistemimizin PowerShell v2, PowerCLI 5.01, Vcenter2.5 minimum gereksinimlerini taşıması gerekir.
Vcheck script dosyasını ise www.virtu-al.net/vcheck-pluginsheaders/vcheck adresinden indirebilirsiniz.
Vcheck’i sistemimizde kullanmak için öncelikli olarak, script’in genel değişkenlerini tanımlamamız gerekmektedir. Bunun için powershell komut satırına .\Vcheck.ps1 –config yazıyoruz.
Sihirbazın bize sormuş olduğu soruları sabırla cevaplandırıyoruz.
Sisteminizde değişiklik olduğunda veya değişkenlerinizi değiştirmek istediğinizde sihirbazı yeniden çalıştırmak için vCheck anadizini altında bulunan GlobalVariables.ps1 dosyasındaki $SetupWizard =$False bölümünü $tTrue olarak değiştirmelisiniz.
Değişken tanımlama işlemi bittiğinde Vcheck ESX sunucularınıza bağlanmak isteyecek bunun için kullanıcı adı ve şifre bölümüne ilgili kullanıcının bilgilerini giriyoruz.
Kullanıcı adı ve şifre doğru ise Vcheck sistemi taramaya başlayacaktır. Resimdeki kırmızı hata ise Vcheck içerisindeki scriptlerin bazılarının sadece Vcenter ile birlikte çalışabildiğindendir.
Veri toplama işlemi bittiğinde internet tarayıcısında sisteminiz hakkındaki tüm detayları görebileceksiniz. Bu sayfada ayrıntılı olarak sunulan sanal ortamlarınızın durumunu config işlemi sırasında sizin belirttiğiniz sınır değerler ile oluşturulduğu unutulmamalıdır.
Kontrol işlemini günlük ve haftalık olarak Schedule Task Yapmak içinse birkaç basit işlem yapmak gerkiyor. İlk olarak Vcheck – Plugins klasörü altında bulunan “00 Connection Plugin for vCenter.ps1” dosyasını herhangi bir editör ile açıp 26. Satırda bulunan “$VIConnection = Connect-VIServer $VIServer “ satırının sonuna -user “Vcheck” – Pass “Password” parametrelerini ekliyoruz.
Yeni bir txt dosyası oluşturup içerisine aşağıdaki komut yazıp uzantısını bat olarak kaydediyoruz.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -psc “C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\vim.psc1″ -noe ” & ‘C:\vCheck\vCheck.ps1′”
Oluşturduğumuz bat dosyasını otomatik çalışması için bilgisayarımızın Task Manager bölümüne giriyoruz ve yeni bir task oluşturuyoruz.
Oluşturduğumuz Task, belirtiğimiz zamanlarda otomatik olarak çalışacak ve raporu config sihirbazında belirttiğimiz Email adresine gönderecektir. Eğer birden fazla kişiye rapor göndermemiz gerekiyor ise GlobalVariables.ps1 dosyasındaki $EmailTo değerine diğer kullanıcıların mail adreslerini eklemeliyiz.
Umarım faydalı bir makale olmuştur. Bir sonraki makalemizde görüşmek dileği ile esen kalın.