vCO PowerShell plugin Kurulumu ve Kullanımı
Vmware vCenter Orchestrator (vCO) workflowları içerisinde istediğimiz gibi script yazmamıza izin verse de ön tanımlı olarak sadece Javascript’i destekliyor . Bu sebepten dolayı hali hazırda kolayca bulunan veya mevcut olarak kullandığımız Powershell scriptlerimizi kullanamıyoruz. Bunun için Vmware vCO’a Powershell Plugin’i çıkartmıştır. Bu yazımda bu plugin’nin kurulumunu ve kullanımını anlatacağım.
Plugin’i kullanabilmemiz için öncelikle aşağıdakilere sahip olmamız gereklidir:
- Windows 2008R2 veya üstü
- IIS yüklü olması gerekiyor
- Yerel administrator şifresi
- vCO Powershell Plugin
vCO Powershell Plugin’i kurmak:
- vCO’a https://vco_sunucusu:82823 üzerinden giriş yapalım.
- “Plug-ins” sekmesine geçelim.
- En altta bulunan “Install new plug-in” kutusunun yanındaki merceğe basıp daha önce indirmiş olduğumuz plugin dosyasını gösterelim
- “upload and install” tuşuna basıp plugin’i yükleyelim.
Plugin’i vCO’a kurmak için olan adımlarımız bu kadardır.
Powershell Host ayarları:
vCO powershell plugin’i Powershell host ile iletişim kurmak için WRM kullanmaktadır bu sebepten dolayı yetkilendirme için üç yöntemden birini kullanabiliriz.
- HTTPS üzerinden sertifikayla
- http üzerinden şifrelenmeden
- Kerberos
Uygulaması kolay olduğundan ve ev ortamımda kerberos olmamasından dolayı anlatımıma HTTP ile devam ediyorum ama canlı sistemlerinizde mümkün olduğunca merkezi yetkilendirme sistemlerini kullanmanızı önermekteyim.
İlk önce vCO ile iletişim kurabilmesi için WRM’i ayarlamamız gerekiyor.
- zCommand Prompt’u Administrator olarak açalım
- winrm quickconfig komutuyla firewall ve benzeri temel ayarların otomatik yapılmasını sağlayalım.
- Winrm e winrm/config/listener komutunu kullanarak hangi portları dinlediğini kontrol edelim http üzerinden iletişim sağlayacağımız için 5985’in açık olması gerekiyor
- Artık http üzerinden yetkilendirmeye izin verebiliriz bunun için
winrm set winrm/config/service/auth @{Basic=”true”}
Yukarıda ki komutun çıktısı ise aşağıda ki gibidir
- Şifrelenmemiş trafiğe izin verelim
winrm set winrm/config/service @{AllowUnencrypted=”true”} - Aynı ayarları şimdi client içinde yapmamız gerekiyor. Aynı command prompt’dan devam edebiliriz. Çıktıları da benzer olacaktır.
winrm set winrm/config/client/auth @{Basic=”true”} - Client için şifrelenmemiş trafiğe izin verelim
c:\> winrm set winrm/config/client @{AllowUnencrypted=”true”} - vCO’nun hostname veya ip adresini TruestedHost olarak ekleyelim.
winrm set winrm/config/client @{TrustedHosts =”vco_hostname/ip”}
Bu adımları tamamladıysanız test etmek için aşağıda ki komutu kullanabilirsiniz
winrm identify -r:http://winrm_sunucusu:5985 -auth:basic -u:user_name -p:password -encoding:utf-8
Burada dikkat etmeniz gereken nokta username olarak yerel administrator kullanmanızdır. Eğer “Error number: -2144108316 0x803380E4” diye bir hata alırsanız TrustedHosts kısmına powershell sunucusunun FQDN’ini ekleyin. Düzgün çalışırsa çıktısı aşağıda ki şekildedir.
vCO’ya Powershell sunucusunu tanıtmak:
- Artık Powershell sunucusunu vCO’a tanıtmamız gerekiyor bunun için vCO client ile giriş yapalım.
- Sağ üst panelden “Workflows->Library->Powershell->Configuration->Add a Powershell Host” workflow’unu seçelim.
- Workflow’u başlatalım ve gelen ekranda Powershell host’u için bir isim,hostname veya ip adresini yazalım.
- Bir sonraki ekranda powershell hostuyla ilgili yapılandırma bilgilerinin girilmesi gereklidir bizim örneğimizde aşağıda ki gibi olacaktır.
- Son adım ise workflow’un powershell host’a bağlanırken hangi kullanıcı bilgilerini kullanacağınız belirlememiz gerekiyor. Burada iki seçenek vardır.
- Shared Session: Tüm kullanıcılar belirli bir kullanıcının yetkilerini kullanırlar.
- Session per User: Her kullanıcının login bilgisi yetkilendirme için kullanılır bunun çalışabilmesi için vCO ve Powershell Hostunun aynı AD/LDAP’dan yetkilendirme yapmaları gereklidir.
Submit tuşuna bastıktan sonra workflow çalışmaya başlayacaktır ve gerekli işlemleri yaptıktan sonra powershell host eklenecektir.