vCAC Property Dictionary İle Dynamic Menus
vCAC (vRealize Automation) ile VM kurulumlarını otomatik bir hale getirirken, şirketimizin mevcut süreçlerine de mümkün olduğu kadar uydurmak isteriz. VM kurulum sürecimiz içerisinde mutlaka dallanan bazı seçimler ve yollar vardır. Bir örnek vermem gerekirse Prod,QA,Dev isimli 3 farklı ortamımız olduğunu varsayalım ve her ortamın farklı sayıda ve tipte backup politikası olsun.
Prod için olan backup politikaları: Günlük,Haftalık ve Aylık VM backup ve bunlara ek olarak DB backup
QA için olan backup politikaları: Haftalık VM backup ve bunlara ek olarak file backup
Dev için olan backup politikaları: Aylık VM backup
Son kullanıcı bunlardan birini VM’ini talep ederken seçebilmeli ama seçtiği ortamın kapsamında olmayan politikaları seçememesi gerekiyor.
Gördüğünüz üzere ortak seçeneklere sahip oldukları gibi bir birlerinden farklı seçenekleri de var. Bu durumda iki yol izleyebilirsiniz. Birinci yöntem her ortam için ayrı bir blueprint oluşturmak ikinci yöntem ise property dictionary içerisinde dinamik bir dropdownlist oluşturmaktır.
İlk yöntemin büyük ortamlar için sürdürülebilir bir yol olmadığını açıklamak isterim. Yukarıda ki her bir ortamı ayrı blueprint yaptığınız zaman şöyle bir senaryo olacaktır. Eğer VM’lerinizi 2 farklı veri merkezi ve bu merkezler altında ki farklı dosyalara kurdurmak isterseniz. Yeni dosya seçeneği çarpı ortam sayısı kadar blueprint’e sahip olacaksınızdır. Bu hem kullanıcıların kafasını karıştıracaktır hem de sizin için idaresi zor bir sistem haline gelecektir.
Dynamic property dictionary sayesindeyse bir seçenek seçildiğinde sadece onunla ilgili olan özellikleri getirebiliriz. Bunu yapabilmeniz için aşağıda ki adımları izlemeniz yeterlidir.
vCAC tenant portaline administrator olarak giriş yapalım ve üst panelden Infrastructure sekmesine basalım,sol taraftaki menüden sırasıyla Blueprints,Property Dictionary’e gidelim ve New Property Definition ile yeni bir property yaratalım.
Benim yarattığım Property’nin özellikleri aşağıda ki gibidir. Name ve Display Name’e istediğinizi yazabilirsiniz sadece Control Type’ın DropDownList olmasına ve Required’ın seçili olmasına dikkat edin.
Property’i yarattıktan sonra yanında beliren “Edit’e” basarak Attribute yaratalım. Type olarak ValueList, Name olaraksa bir önce ki ekranda Property’e ne ismini verdiyseniz benim örneğimde machine.Env ve son olarak Value içerisine Prod,QA,Dev yazınız.
ValueList özelliği dropdown menü içerisinde ki değerleri atamamıza yarar, istediğimiz değerleri Value içerisine virgülle ayırarak yazabiliriz. İşlemleri bitirdikten sonra bir önceki ekrana geri döneceğiz. Property’i yarattık ama VM talep formunda görülebilmesi için yapmamız gereken ilk işlem hemen alt kısımda bulunan Property Layout’a eklemektir. Yeni bir layout yaratıp Name kısmına Env.Selection Description kısmınaysa machine.Env yazalım.
Layout’u yarattıktan sonra Edit’e basıp Property İnstances’a girelim. Order olarak 1 ve ilişkilendireceğimiz Property Definition olarak da machine.Env seçelim.
Artık istediğimiz Blueprint’in Properties kısmına aşağıda ki şekilde ekleyebiliriz.Bu sayede VM talep formunda Ortam seçeneği gelecektir.
Ortamı tanımlayan Property’i yarattığımıza göre artık onunla ilişkilendireceğimiz Backup Property’sini yaratabiliriz. Bir önce ki kısımla bire bir aynı adımları izleyeceğiz tek fark Property Attribustes kısmında seçeneklerin ortam seçeneğine göre dinamik değişebilmesi için biraz XML yazmamız gerekiyor.
machine.Backup isimli DropdownList tipinde bir property yarattım ve attributes kısmına geçtim, tüm incelik bu noktada. İlk önce hangi özellikle ilişkilendireceğimizi seçiyoruz bunun için aşağıda ki özelliklerde bir Attribute ekleyelim.
Type: Relationship
Name: Parent
Value: machine.Env (Burada hangi özellikle ilişkilendireceksek onu seçiyoruz)
Daha sonra dinamik olarak oluşturulacak değerleri belirlememiz lazım.
Type: ValueExpression
Name:Expression
Value kısmınaysa XML olarak yazmamız gerekiyor. Bizim örneğimize uygun XML aşağıda ki gibidir.
<?xml version=”1.0″ encoding=”utf-8″ standalone=”yes”?>
<ArrayOfPropertyValue xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
<PropertyValue>
<FilterName>machine.Env</FilterName>
<FilterValue>Prod</FilterValue>
<Value>Günlük VM Backup</Value>
</PropertyValue>
<PropertyValue>
<FilterName>machine.Env</FilterName>
<FilterValue>Prod</FilterValue>
<Value>Haftalık VM Backup</Value>
</PropertyValue>
<PropertyValue>
<FilterName>machine.Env</FilterName>
<FilterValue>Prod</FilterValue>
<Value>Aylık VM Backup</Value>
</PropertyValue>
<PropertyValue>
<FilterName>machine.Env</FilterName>
<FilterValue>Prod</FilterValue>
<Value>DB Backup</Value>
</PropertyValue>
<PropertyValue>
<FilterName>machine.Env</FilterName>
<FilterValue>QA</FilterValue>
<Value>Haftalık VM Backup</Value>
</PropertyValue>
<PropertyValue>
<FilterName>machine.Env</FilterName>
<FilterValue>QA</FilterValue>
<Value>File Backup</Value>
</PropertyValue>
<PropertyValue>
<FilterName>machine.Env</FilterName>
<FilterValue>Dev</FilterValue>
<Value>Aylık VM Backup</Value>
</PropertyValue>
</ArrayOfPropertyValue>
XML’i açıklarsak tüm değerler <PropertyValue> arasına yazılmalıdır.
<FilterName> hangi Property’e göre filtre uygulanacağınız belirler biz ortama göre filtrelemek istediğimizden onun değerini yazıyoruz.
<FilterValue> Uyguladığımız filtrenin hangi değeri geldiğinde <Value> içerisinde yazan değerin seçileceğini belirtir.
Buradan sonra ki adımlar daha önce ki kısımla bire bir aynıdır. Layoutları yaratıp ekledikten sonra test edebiliriz. Ortamı Prod olarak seçersem
QA olarak seçersem
Örnekleri ve kullanım alanlarını istediğiniz gibi çoğaltabilir ve tek bir blueprint üzerinden oldukça esnek bir şekilde son kullanıcılara hizmet verebilirsiniz.
Okuduğunuz için teşekkür ederim.
One Trackback
[…] 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ı […]