vCAC VM Talebi Esnasında Ek Administrator Kullanıcısı Eklemek
vCAC’de VM yaratırken genelde olan yaklaşım sadece owner kullanıcısını VM’in Administrator grubuna eklemektir. Peki, owner haricinde de bazı kullanıcıları ilk kurulum esnasında eklemek istersek bunu nasıl yaparız.
vCAC VM’in sadece bir adet owner’ı olmasına izin veriyor bu yüzden eğer birden fazla kişinin Administrator grubuna eklenmesini istiyorsam biraz özelleştirme yapmamız gerekiyor.
İlk önce “blueprint” içerisinde kullanıcı ekleyebileceğimiz bir alan yaratmamız gerekiyor. Bunun için yukarıda ki panelden “Infrastucture” sekmesine tıklayıp yan menüden sırayla “Blueprints” ve “Property Dictionary’i” seçelim. Property Dictionary adından da anlaşılacağı üzere blueprint’lere dâhili olarak gelmeyen bir özelliği tanımlamak için kullanılır. Aşağıda ki ekran görüntüsünde benim bir blueprint için yarattığım özellikleri görebilirsiniz.
Name: Değişkenin adını belirler custom.* yapısında olmalıdır
Display Name: Bir forma eklediğimiz zaman hangi isimle gözükeceğini belirler
Control Type: Formda ne tür bir input olacak gözükeceği (Textbox,Label,checkbox gibi)
Required: Bu değişkenin zorunlu olarak doldurulması gerektiği
Property Attributes: Control Type göre değişen özelliklerdir.
Bir altta bulunan “Property Layouts” ise Formda gözükeceği ve hangi özelliğinin değişken olarak alınacağını seçer. Ben ekleyeceğimiz kullanıcılar için bir adet textbox yarattım ve adını custom.machineUsers koydum.
Property’i yarattığımıza göre şimdi Blueprintimize ekleyelim. Yine solda ki panelden blueprint’i seçelim ve değişiklik yapmak istediğimiz template’in edit ekranına girelim. “Properties” sekmesine tıklayıp, Property Layouts’da yaratmış olduğumuz değişkeni ve layout’u ekleyelim. Bizim örneğimizde değişken custom.machineUsers ve layout ise VirtualMachine.Request0.Layout ;”Value” kısmınaysa machineUsers.Text yazalım. Böylelikle formda artık yeni bir alan gözükecektir. Bu alan içerisine yazdığımız yazılar(text) custom.machineUser değişkeni içerisine atanacaktır.
Eğer bunları doğru yapmışsanız “Catalog” sekmesinden blueprintin temsil ettiği hizmete girerseniz aşağıda ki gibi kullanıcı eklemek için ek bir parametre kutusu daha belirecektir.
Tabii yukarıda ki blueprinti ben daha önceden kendime göre özelleştirdiğim için sizde farklı olacaktır. “Add user” textbox’ını görüyorsanız artık buradan alacağımız değişkenleri nasıl işleyeceğimizi gösterelim. Bu tarz kullanıcı eklemek veya yazılım kurmak gibi OS seviyesindeki işlemler için benim size tavsiyem vCO yerine vCAC Agent’ı kullanmanızdır. İlk önce template içerisinde scriptlerinizi tuttuğunuz klasörde bir “batch” yaratın ve aşağıda ki komutu içerisine yazın. Ben bu dosyaya userAdd.cmd ismini verdim.
powershell C:\scripts\userAdd.ps1 %*
Burada yaptığım şey userAdd isimli powershell scriptini yollayacağım bir parametreyle tetiklemektir. vCAC Agent powershell’leri direk çalıştırmıyor bu sebepten böyle bir alternatif yola başvurmak zorunda kaldım.
userAdd.ps1’in işleviyse “Add user” alanından gelen listeyi alıp öncelikle tek tek kullanıcı isimlerine ayırmak ve administrator grubuna eklemektir.
foreach($st in $args) { $serverName = $env:COMPUTERNAME $Group = 'Administrators' $userDomain = "emrebozlak.local" $st.Split(" ") |foreach{ $user = $_ $ad = [ADSI]"WinNT://$serverName/$Group,group" $ad.psbase.Invoke("Add",([ADSI]"WinNT://$userDomain/$user").path) } }
Son yapmamız gerekli olan artık bir yeni “Build Profile” yaratmaktır. Build Profile VM ilk kurulurken çalışır ve VM’in belli özelliklerini değiştirmemize yarar. Örnek vermek gerekirse, AD içerisinde bir OU’ya taşımak, vCenter’da özel bir klasöre taşımak veya sysprep yapmak gibi.
Yine Blueprints altında ki Build Profiles’a tıklayalım ve yeni bir tane yaratalım. Özellikleri aşağıda ki gibi olmalıdır.
Tabii bu değerleri kendinize uygun şekilde değiştirmeniz gerekmektedir. Software* kısmına dikkat ediniz eğer aynı numarada iki script bir blueprint’e tanımlanmışsa sorun çıkartıyorlar bu sebepten dolayı, benim tavsiyem her script çalıştırdığınız build profile’a yeni bir numara verin. İkinci dikkat çekmek istediğim noktaysa, VirtualMachine.Software2.ScriptPath kısmında scriptin yolunu verdikten sonra en sonuna parametre olarak daha önce yarattığım property’iyi yazdım. Böylelikle formdan gelecek değerleri direk vCAC agent üzerinden scripte yollayabilirim.
3 comments, add your’s.
ismail yılmaz
Yazı çok güzel.
Sadece bir konuyu yeni başlayanlar için belirtmekte fayda olabilir.
Blueprint’de custom.machineUsers değişkeni eklendikten sonra promt user işaretlenmeli. Yoksa Add User kısmı blueprint’te çıkmaz.
Selamlar,
Derya Cengiz
Daha kolay olduğunu düşündüğüm bir yöntem önerebilirim.
1. Blueprint template’ine VCAC Guest Agent kurulur (önce convert to VM diyip https://vcacIP:5480/i adresinden vcac guest agent’ı download edip kurup tekrar convert to template dedikten sonra blueprint oluşturulur veya update edilir)
2. Bir tane build profile oluşturulur, adı mesela VM Sahibini Admin Yapan BP olsun
3. Build profile’ın Property’leri
– VirtualMachine.Admin.UseGuestAgent = true
– VirtualMachine.Customize.WaitComplete = true
– VirtualMachine.Software0.Name = VM Sahibini Admin Yapan Komut
– VirtualMachine.Software0.ScriptPath = net localgroup administrators /add {Owner}
4. Oluşturduğumuz build profile istediğimiz blueprint’in properties tabından seçilir
Umarım unuttuğum veya yanlış yazdığım bir adım yoktur.
Emre Bozlak
AuthorMerhaba,
Öneriniz için teşekkür ederim. Yukarıda bahsettiğiniz yöntem sanırım VM Request’i esnasında Owner’ı otomatik olarak eklemek için kullanılıyor, ben bu yazımda owner haricinde ek başka kullanıcıları da eklemek istersek yapmamız gerekenleri yazmıştım. Yukarıda bahsettiğiniz yönteme benzer bir yöntem bende kullanıyorum.