vRealize Automation ve vCO Entegrasyonu
Bazen vRealize Automation içerisinde gelen ön tanımlı workflowları ihtiyaçlarımız doğrultusunda özelleştirmek isteriz. Genelde Design Center içerisinde bulunan akışlar ve componentler ihtiyaçlarımızı genelde karşılasalar da vCO üzerinde bulunan başka workflowlarıda çağırmak isteyebiliriz. vCO’nun AD,SRM,Netapp ve Exchange gibi bir çok farklı entegrasyonu vardır bu sayede VM’imizi yaratırken başka ürünlerle de entegrasyonunu sağlayabilir daha esnek ve süreçlere uygun bir yapı oluşturabiliriz.
vRealize Automation Center’ın vCO workflowlarını çağrabilmesi için bir adet endpoint yaratmamız gerekmektedir. Portal üzerinden sırayla Infrastructure->Endpoints->Endpoints sekmelerini izleyelim. “New Endpoint” kısmında Orchestrator’u seçelim ve gelen ekranda gerekli bilgileri dolduralım.
“Address” kısmına eğer varsa external vCO sunucunuzun adresini eğer yoksa Automation Center appliance’ın adresini yazabilirsiniz. vCO adresi appliance için https://vCACappliance:8281/vco şeklinde olmalıdır. vCO’a giriş için kullandığımız “Credentials” bilgilerini seçelim ve son olarak “Custom Properties” kısmında “VMware.VCenterOrchestrator.Priority” isimli bir özellik yaratarak değerini “1” yapalım. Eğer birden fazla vCO kullanıyorsak her biri için farklı endpointler yaratıp “Priority” değerlerini farklı atamalıyız, bu sayede bir workflow çalışırken hangi vCO’a erişebilirse onun üzerinde workflow’u çalıştıracaktır.
vCO endpoint’i eklediğimize göre üzerine gelip “Data Collection” seçeneğini seçelim. Eğer aşağıda ki gibi bir çıktı alırsanız her şey sağlıklı çalışıyor demektir.
Automation center ile ilgili kısmı bitirdiğimize göre basit bir örnek yapabiliriz. Bunun için vCO’da bir Hello World workflow’u yarattım, bu workflow talep edilen VM’in adını alıp log dosyasına yazacak.
Input parametresi olarak bir adet vmName isimli string tipinde değişken yaratalım ve workflow içerisine “scriptable task” ekleyip içerisine “System.log(“Talep edilen VM’in adı : ” +vmName);” satırını ekleyelim.
Bir sonra ki adımda vRealize Design Center’ı(vCAC Design center) açıp workflow’u eklemek istediğimiz stub’ı seçelim.
Daha sonra akış içerisinde isterseniz custom code’un içerisine isterseniz de ayrı bir bölüm yaratarak özelleştirme kısmına başlayabilirsiniz. Burada kendi kullandığım bir yöntemi paylaşmak isterim, tüm özelleştirmeleri “Custom code” içerisine yazmak yerine her fonksiyon için ayrı bir tane yaratıyorum bu sayede hem değişiklik yapmak hemde sistemin okunabilirliği daha da kolaylaşıyor.
Workflow’u çağırmak için “Invokevcoworkflow” veya “Invokevcoworkflowasync” kullanmamız gerekmektedir. Bunları Designer ile workflow’a ekledikten sonra sonra ilk önce hangi vCO workflow’u ile ilişkilendireceğimizi seçmemiz gerekiyor, ben bu örnek için daha önce yarattığım “Hello world’ü” seçtim.
Seçimi yaptıktan sonra vCO workflow’u içerisinde tanımladığımız input ve varsa output değerlerine hangi değişkenleri yollayacağımızı belirlememiz gerekmektedir. Bunu da yaptıktan sonra artık bir VM yaratıp workflow’un çalışıp çalışmadığını vCO üzerinden loğlara bakarak görebiliriz.
Not: Eğer workflow seçimi esnasında aşağıda ki gibi bir hata alıyorsanız vCO endpoint bilgilerinizi bir daha kontrol ediniz.
Okuduğunuz için teşekkür ederim.