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.
vCO Powershell - Plugin

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
    vCO Powershell - winrm listener
  • 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
    vCO Powershell - winrm basic auth
  • Ş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”}
    vCO Powershell - winrm allowunencrypted

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 Powershell - winrm output

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.
    vCO Powershell - Add Host Workflow
  • Workflow’u başlatalım ve gelen ekranda Powershell host’u için bir isim,hostname veya ip adresini yazalım.
    vCO Powershell - Add Host Step 1
  • Bir sonraki ekranda powershell hostuyla ilgili yapılandırma bilgilerinin girilmesi gereklidir bizim örneğimizde aşağıda ki gibi olacaktır.
    vCO Powershell - Add Host Configuration
  • 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.

vCO Powershell - Add Host authentication

Submit tuşuna bastıktan sonra workflow çalışmaya başlayacaktır ve gerekli işlemleri yaptıktan sonra powershell host eklenecektir.

Bu blog yazısı Emre Bozlak tarafından paylaşılmıştır. Referans vererek istediğiniz gibi kullanabilirsiniz. Eğer bir sorunuz olursa eposta veya sosyal medya hesaplarım üzerinden bana ulaşabilirsiniz. Yazılarımı Twitter'dan @emrebozlak veya RSS üzerinden takip edebilirsiniz.

Leave a comment