vRealize Orchestrator Basics – 1

Bu yazımda biraz vRealize Orchestrator’dan bahsetmek istiyorum. Biliyorsunuz gerçek bir bulut yapısına giden yolda otomasyon çok ciddi bir yer kaplamaktadır. Bu sebepten dolayı bu ve bundan sonra ki birkaç yazımda Vmware’in Orchestrator’undan bahsetmek istiyorum. Orchestrator aslında eski bir ürün olmakla beraber son yıllarda ciddi anlamda yeteneği artmış ve kullanım alanı genişlemiş bir üründür. Sadece Vmware’in kendi ürünleriyle değil pluginler sayesinde birçok AD’den tutun aktif network cihazlarına kadar çok geniş bir yelpazede ki ürünleri yönetebiliyorsunuz.

vRealize Orchestrator programlama dili olarak Javascript kullanmaktadır alternatif olarak powershell plugin’i kullanabilirsiniz.Bunun için daha önce yazdığım yazımdaki adımları izlemeniz yeterlidir. Bu yazımdaysa, biraz workflow temellerinden ve görsel programlama ara yüzünden bahsetmek istiyorum.

Orchestrator’da her workflow bir şemaya(schema) sahiptir. Bu şema tüm mantıksal akışın yazıldığı ve gerekli programlamaların yapıldığı görsem sisteme verilen isimdir. Aşağıda görebileceğiniz gibi her şemanın bir başlangıç(Yeşil yuvarlak OK) ve bitişi vardır(Gri yuvarlak ikon). Her şemanın tek bir başlangıcı varken birden fazla bitiş olabilir. Schema içerisinde ki tüm objeler bir birine bağlı olmak zorundadırlar. Mavi oklar normal bağlantıyı temsil eder yani bir obje çalışmasını bitirdikten sonra bir sonrasına geçer, yeşil oklar True kırmızı noktalı oklar ise False’u temsil eder. Son iki ok daha çok karar mekanizması içeren objelerden sonra kullanılır.

vRealize Orchestrator Basics - Schema

Workflow’larımızın içerisine değişken tanımlamamızda mümkündür, değişkenler General,Input veya Output sekmeleri altında tanımlanabilirler. Her sekme altında yarattığımız değişkenin farklı bir işlevi vardır. General kısmında yarattığımız değişkenler tüm workflow tarafından erişilebilirler, genellikle sabit değerler için kullanılır. General tabı altında attribute kısmından değişkenlerimizi yaratabiliriz.

vRealize Orchestrator Basics - variable general

Eğer başında ki kilit olan checkbox’ı işaretlerseniz değişkenin atadığınız değeri workflow içerisinde değiştirilemez.

“Inputs “sekmesi altında workflow’a dışarıdan kullanıcı tarafından değerleri belirlenecek değişkenler bulunmaktadır. Inputs kısmında tanımladığınız değişkenleri workflow’ları ilk çalıştırdığınızda bir form aracılığıyla sizden isteyecektir.

vRealize Orchestrator Basics - variable input

Output sekmesi de workflow’un çalışması sonucunda oluşan değerleri almak için kullanılır. Bu değişkenin değeri önceden belirlenemez ve workflow içerisinde belirlenmelidir.

vRealize Orchestrator Basics - variable output

Değişken tipleri genelde programlamadan bildiğimiz standart değişken tipleridir. Ek olarak bazı değişken türlerinin başında VC:, NSX:, AD: gibi ön ekler olduğunu fark edeceksinizdir. Bu ön ekler pluginlerle beraber gelmektedir ve ilgili plugine özel bazı değişken türlerini kullanmanızı sağlar. Mesela vCenter’da bulunan dosyaların adı veya Active directory’de bulunan group isimi gibi özel değişken türleri için kullanılır.

Küçük bir örnekle hem workflowlar içerisinde nasıl değişken kullandığımızı hem de bazı karar mekanizmalarından yüzeysel olarak bahsetmek istiyorum.  İlk önce vRealize Orchestrator’a giriş yapıp yeni bir workflow yaratalım. Yeni bir workflow yaratmak için:

  • Üst panelde bulunan drag and drop’u kullanarak “Design” seçeneğini seçelim.vRealize Orchestrator Basics - design
  • Sol taraftaki panelde workflow ikonuna basıp, Library üzerine sağ tıklayarak “Test” adında yeni bir klasör yaratalım.
    vRealize Orchestrator Basics - Add Folder
  • Test klasörü üzerine aynı şekilde sağ tıklayarak yeni bir workflow yaratalım.
  • Inputs kısmına “my_number” isimli “number” tipinde bir değişken yaratalım.
    vRealize Orchestrator Basics - Helloworld workflow input
  • Schema sekmesine gelip ilk önce solda ki panelden “Decision” objesini sürükleyip bırakalım
    vRealize Orchestrator Basics - Workflow step 1
  • Decision adından da anlaşılacağı üzere belli bir duruma göre karar verilmesini sağlayan mekanizmadır. Üzerine geldiğinizde çıkan kalem işaretine basıp edit ekranına gelelim.
  • Edit ekranında “Decision” sekmesine gidelim ve “Not set” bağlantısına basalım
  • Burada daha önce yarattığımız my_number değişkenini görebiliriz. Eğer başka değişkenler olsaydı bu değişkenleri de görebilirdik.

    vRealize Orchestrator Basics - Decision variable

  • Değişkenimizi seçtikten sonra şartımızı seçmemiz gerekiyor. Ben bu örnekte eğer 5’den büyükse yeşil(True) değilse kırmızı(false) oku izleyecek şekilde tasarladım.
    vRealize Orchestrator Basics - Decision choose
  • Bu workflow’u biraz daha süslemek ve değişkenlerin javascriptler içerisinde nasıl kullanıldığını da göstermek için decision’nın her iki çıkışına da birer “scriptable task” ekledim. Scriptable taskler daha öncede bahsetmiş olduğum javascript kodlarını çalıştırmak için kullanılırlar.
    vRealize Orchestrator Basics - Workflow step 2
  • Scriptable task’lardan birinin edit panelini açalım ve “IN” sekmesine girelim.
  • Hemen en baştaki “Bind Workflow Parameter” tuşuna basarak, my_number değişkenini seçelim.
    vRealize Orchestrator Basics - Scriptable task IN variable
    IN içerisinde tanımladığımız değişkenleri script içerisinde kullanabilir, OUT ile tanımladıklarımızı da workflow boyunca başka objelere aktarabiliriz.
  • Değişkenimizi ekledikten sonra “Scripting” tabına geçip buraya istediğimiz Javascript kodlarını yazabiliriz.
    vRealize Orchestrator Basics - Scripting
    Yukarıda kod girdiğimiz sayıyı ve başındaki açıklamayı loğlara yazacaktır.
  • Aynı işlemleri öteki Scriptable task içinde yapalım.

Artık workflow’umuzu çalıştırabiliriz. Schema tasarımını yaptığımız panelin hemen üzerinde “Run”,”Debug” ve “Validate” isimli 3 adet ikon göreceksiniz. İlk önce Validate’e basarak tasarladığımız workflow’un bir hatası olup olmadığını kontrol edelim. Eğer sorun yoksa Run’a basıp workflow’u çalıştıralım.

vRealize Orchestrator Basics - Run

Input parametremizi girmemizi isteyen bir panel gelecektir.
vRealize Orchestrator Basics - Run workflow

Farklı sayılarla birkaç deneme yaptım. İlk denememde değer olarak 7 ikincisindeyse 4 verdim. Sonuçları yanda bulunan Logs sekmesinde görebilirsiniz.
vRealize Orchestrator Basics - logs

Burada küçük bir giriş yaptım ileri yazılarımda workflow nesnelerine daha detaylı şekilde bakacağız ve elimden geldiğince javascript anlatmaya çalışacağım.

Okuduğunuz için çok teşekkür ederim.

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