vRealize Automatin Custom VM Name

Her kurumun sunucuları için kullandığı bir isim standardı vardır, bu standart sayesinde sistem yöneticileri sunucuların lokasyonunu, kullanım amacını ve önemini bir seferde görebilirler. vRealize Automation sunuculara bizim belirlediğimiz prefix’leri atasa da son kısmına eşsiz olması için bir sayı atamaktadır. Bu birçok kurumun isimlendirme yapısına uymamaktadır. Bu sebepten dolayı bu yazımda vRealize Automation üzerinden VM talebi esnasında VM adını nasıl belirleyebileceğimizden bahsedeceğim.

Birden fazla veri merkezimiz olduğunu ve her veri merkezi için ayrı bir prefix olduğunu varsayıyorum, sistem yöneticisi bir blueprint’i seçtikten sonra sadece prefix’den sonra yazması gerekli olan kısmı dolduracak ve prefix’le birleştirerek yeni bir VM adı yaratıp veri tabanını güncelleyecek.

Yeni bir prefix yaratmak için üst panelden Infrastructure tabını seçip sırasıyla Blueprints ve Machine Prefixes seçeneklerini seçelim. Yeni gelen ekrandan “New Machine Prefix” bağlantısına basarak yeni bir tane prefix yaratalım.

vRealize Name Convert - Create Prefix

Ana veri merkezim için mdc-(main data center) prefix’ini yarattım ve number of digits kısmı sonunda kaç haneli bir sayının olacağını, next number ise sayıların kaçtan başlayacağını belirlemektedir.  Prefix’in sonuna tire (-) işaretini ekleme sebebimse powershell ile string işlemleri yaparken bana bir referans noktası olması içindir.

İkinci adımda VM talep ederken isminin ikinci kısmının girilebilmesi için talep formunda kullanıcılara bir textbox göstermem gerekiyor. Bunun için Property Dictionary’e girip Textbox kontrol tipine sahip ve Requeired olarak “Yes” seçili bir property yaratalım.

vRealize Name Convert - suffix property

Aynı şekilde Property Layout yaratmayı unutmayalım.

vRealize Name Convert - Property Layout

 

 

Bu işlemleri yaptıktan son Blueprint’e gidip yarattığımız prefix’i ve layout’u ekleyelim ve formumuzu kontrol edelim ve machine suffix kısmının geldiğini görelim, ekleme adımlarını daha detaylı görmek için vCAC Property Dictionary İle Dynamic Menus yazımı okuyabilirsiniz.vRealize Name Convert - Form machine suffix

Şimdi yazımın ikinci kısmı olan workflow tasarımına geçebiliriz. VM talep edildiğinde prefix kısmında ki bilgilerden otomatik olarak bir VM adı oluşturulacaktır, bizim string işlemlerini yapacak olan powershell scriptimize machine suffix kutusunda ki bilgileri aktarmamız ve script’in çıktısını yeni VM adı olarak veri tabanında güncellememiz gerekmektedir.

vRealize Designer’ı açıp BuildWorkflow’ı yükleyelim ve Custom Code bloğuna girelim ve aşağıda ki sekmeden variables’ı açıp değişkenleri tanımlayalım.

vRealize Name Convert - Varibles

İlk önce mevcut VM adını almak için yan panelde bulunan toolbox kısmından GetMachineName kutusunu alalım ve aşağıda ki gibi dolduralım.

vRealize Name Convert - get machine name

Aynı şekilde talep formunda bulunan machine suffix özelliğini alabilmek için GetMachineProperty kutusunu alıp aşağıda ki gibi dolduralım. Tabii burada ki bilgiler sizin yarattığınız değişkenlerle uyumlu olmalı.

vRealize Name Convert - Get machine suffix

Değişkenleri aldığımıza göre bunları işleyecek powershell scriptini çağırmak kaldı. scripti yazının sonunda paylaşacağım :). Bunun içinde Invoke Powershell kutusunu kullanıyoruz. Powershell’i vCAC IaaS sunucusu üzerinde tutmamız gerekiyor ve yolunu yazarken “” içerisinde yazmamız lazım.

vRealize Name Convert - InvokePowershell

IsScript’in seçili olduğundan emin olun ve PowershellVariables kısmını aşağıda ki gibi doldurunuz. Powershelloutvar değişkeni yeni ismi yarattıktan sonra tekrar workflow içinde kullanabilmemiz için gerekli olan değişken adıdır. Ben örneklerde ki ismi kullandım siz istediğiniz isimleri verebilirsiniz.

vRealize Name Convert - Powershell Variables

Son kısımdaysa mevcut VM adını ve yeni oluşturduğumuz adı ile değiştirmemiz gerekiyor. Toolboxdan iki adet A-B Assign alalım ve ilkinin ilk kutusuna machine ve ikinci kutuya “mgmtContext.VirtualMachines.Where(Function (vm) vm.VirtualMachineID = virtualmachineId).FirstOrDefault()”  yazalım.Bunun amacı machine isimli bir obje yaratmak ve ikinci A-B kutusu ile yaratığımız machine objesinin VM adını değiştirmek. İkinci A-B Assign kutusunun özellikleriyse ilk kutu için machine.virtualmachinename ikinci kutu içinse Powershelloutvar değişkenini tutalım.

Son olarak updateobject ve savechanges kullanarak öncelikle ismini değiştirdiğimiz objeyi güncelleyip daha sonrada veri tabanına kayıt edelim. Workflow’un tamamı aşağıda ki gibidir.

vRealize Name Convert - workflow

Powershell script aşağıdaki gibi olacak.

$machineName=$originalName

$machineName=$machineName -replace "-", $machineSuffix

$Global:PowerShellOutVar = $machineName

 

$originalName VM’in otomatik olarak yaratılmış adı

$machineSuffix formdan aldığımız kısım

$Powershelloutvar workflow’a geri döndüğümüz değer.

Artık VM’lerinizi yaratırken istediğiniz gibi isimlendirebilirsiniz.

Okuduğunuz için teşekkürler.

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.

One comment, add your’s.

Ismail Yilmaz

Super yazi. Her projede mutlaka gerekli bir islem.

Leave a comment