VMware vSphere ortamlarında özellikle büyük yapılarda düzen ve standart çok önemlidir. Birden fazla cluster, farklı lokasyonlar, ayrı datacenter’lar ya da farklı müşteri ortamları varsa host’ları mantıksal olarak sınıflandırmak ciddi anlamda hayat kurtarır.
İşte burada Custom Attribute (Özel Alan) kavramı devreye girer.
Custom Attribute’lar vSphere içerisindeki nesnelere (VM, Host, Datastore vb.) ek metadata bilgisi eklemenizi sağlar. Örneğin:
- Bu host hangi datacenter’a ait?
- Hangi lokasyonda bulunuyor?
- Hangi müşteri için ayrılmış?
- Hangi ortamda (Prod/Test/Dev) çalışıyor?
VMware vCenter GUI üzerinden tek tek host seçip attribute atamak mümkündür ancak cluster’da 20–30 host varsa bu işlem gereksiz zaman kaybına dönüşür.
Bu noktada PowerCLI ile toplu işlem yapmak çok daha mantıklıdır.
Script’in Amacı
Belirli bir cluster içindeki tüm ESXi host’lara aynı Custom Attribute değerini atamak.
Örneğin:
- Cluster adı:
Cluster-A - Custom Attribute:
Datacenter - Değer:
Datacenter1
Script
$allhosts = get-cluster "clustername" | get-vmhost
foreach ($hostname in $allhosts){
Set-Annotation -Entity $hostname -CustomAttribute Datacenter -Value Datacenter1
}
Script Satır Satır Ne Yapıyor?
Cluster içindeki host’ları alıyor
Get-Cluster "clustername" | Get-VMHost
Get-Clusterbelirtilen cluster’ı bulur.Get-VMHosto cluster’daki tüm ESXi host’ları listeler.- Sonuç
$allhostsdeğişkenine atanır.
Bu noktada elimizde o cluster’daki tüm host’ların bir listesi vardır.
Host’lar üzerinde döngü başlatıyor
foreach ($hostname in $allhosts)
Bu satır, listedeki her host için işlemi tekrarlar.
Custom Attribute atıyor
Set-Annotation -Entity $hostname -CustomAttribute Datacenter -Value Datacenter1
-Entity: İşlem yapılacak nesne (burada ESXi host)-CustomAttribute: Atanacak özel alanın adı-Value: Bu alana yazılacak değer
Bu komut çalıştığında, ilgili host üzerinde belirtilen attribute oluşturulur ya da varsa güncellenir.
Gerçek Hayatta Neden Önemli?
Bu işlem küçük görünebilir, ancak büyük ortamlarda aşağıdaki avantajları sağlar:
Envanter düzeni
Host’ları attribute’a göre filtreleyebilirsiniz.
Raporlama kolaylığı
PowerCLI ile “Datacenter=Datacenter1” olan tüm host’ları listelemek çok kolay olur.
Standartlaştırma
Manuel hataların önüne geçilir. Tüm host’lar aynı değerle etiketlenir.
Operasyonel netlik
Yeni gelen bir admin bile ortamı daha hızlı anlayabilir.
Custom Attribute Önceden Tanımlı mı Olmalı?
Evet. Eğer “Datacenter” adında bir Custom Attribute daha önce oluşturulmadıysa, önce onu tanımlamanız gerekir.
New-CustomAttribute -Name "Datacenter" -TargetType VMHost
Bu komut attribute’u vCenter seviyesinde oluşturur.
Daha Gelişmiş Kullanım Senaryosu
Eğer her host’a farklı değer atamak istiyorsanız (örneğin lokasyona göre), bunu CSV ile yapmak daha profesyonel bir yöntemdir.
Örnek CSV:
HostName;Datacenter
esx01;DC1
esx02;DC1
esx03;DC2
Bu şekilde daha dinamik bir yapı kurulabilir.
Performans ve Güvenlik Notu
- Script’i çalıştırmadan önce doğru cluster’ı seçtiğinizden emin olun.
- Yanlış cluster adı tüm host’ları etkileyebilir.
- Büyük ortamlarda önce test cluster’ında denemek her zaman iyi bir pratiktir.
Bu script basit görünse de:
- Büyük ortamlarda manuel iş yükünü azaltır
- Standart veri yönetimi sağlar
- Raporlama ve filtrelemeyi kolaylaştırır
- Operasyonel düzen oluşturur. Küçük bir otomasyon büyük bir düzen sağlar.
![[TR] VMware PowerCLI ile VMware ESXi Hostlara Custom Attribute Atama](https://kadirkozan.com/wp-content/uploads/2026/02/VMware-logo-featured-1.jpg)