Vcenter API Komutları
Bu yazıda vCenter API Komutlarını ele alacağız. Bu API Komutlarına vCenter CLI’dan erişilebilir.
Yakın zamanda laboratuvar ana bilgisayarlarımı hızlı bir şekilde almak zorunda kaldığım ve vCenter’ın vSphere 7.0U3k’ye yükseltilmesiyle ilgili küçük bir sorun hakkında yazmıştım, neyse ki vSphere Yaşam Döngüsü Yöneticisi beni kurtardı. Bu süreç sırasında vCenter’da, SSH’yi vCenter’a yükledikten sonra doğrudan CLI’den yapabileceğiniz çok sayıda API çağrısı olduğunu keşfettim.
vCenter’a SSH uyguladığınızda sizden sunucusal yardım komutları istenir:
- API’leri listele: “yardım API listesi”
- Liste Eklentileri: “help pi list”
- BASH’i başlatın: “kabuk”
Genel olarak, bunu hemen yapıp “kabuk” yazıp elimdeki göreve geçiyorum.
Son felaketim sırasında “API’leri” araştırmaya karar verdim. Gördüğünüz gibi, yükseltme sırasında mucizevi bir şekilde kendi kendine düzelen garip bir sorun nedeniyle vCenter’da belirli değişiklikler yapamadım. Sorunu nasıl aştığımı ayrı bir gönderide yazacağım. Şimdilik, vCenter’a giriş yaptıktan sonra metin menüsündeki “API’lere” odaklanalım.
Devam etmeden önce, hem vCenter 7 hem de vCenter 8 için tüm API komutları hakkındaki açıklamalara başvurmak istiyorum. Daha fazla bilgi edinmek için aşağıdaki URL’lere tıklayarak vCenter sürümünüze ulaşabilirsiniz.
Hadi konuya geri dönelim. SSH kullanarak vCenter’da oturum açtıktan sonra aşağıdaki komutu yazın:
help api list
API komutlarının tablo biçiminde çok uzun bir listesini göreceksiniz. Aşağıda tablonun çok kısaltılmış bir versiyonunu ekledim:
API Komutu | Tanım |
---|---|
com.vmware.appliance.health.applmgmt.get | Applmgmt servisinin sağlığını alın. |
com.vmware.appliance.health.databasestorage.get | Veritabanı depolamasının durumunu öğrenin. |
com.vmware.appliance.health.load.get | CPU yük durumunu alın. |
. | . |
. | . |
com.vmware.appliance.version1.system.version.get | Cihazın versiyonunu edinin. |
com.vmware.appliance.version1.timesync.get | Zaman senkronizasyonu yapılandırmasını alın. |
com.vmware.appliance.version1.timesync.set | Zaman senkronizasyon yapılandırmasını ayarlayın. |
Şu ana kadar muhtemelen şunu düşünüyorsun, ne olmuş yani? Bu bilgiyi avantajıma nasıl kullanırım? Harika soru! Komut satırına aşağıdaki komutu girin:
api com.vmware.appliance.version1.networking.dns.servers.get
Aşağıdaki çıktıya benzer bir şey görmelisiniz:
Config:
Mode: static
Servers: 192.168.124.31 192.168.124.32
Bu API komutu, vCenter cihazı için yapılandırdığınız DNS sunucularını alır veya alır (çağrının sonunda “get” terimine dikkat edin).
Başka bir API çağrısı deneyin.
Uygulamada çalışan kodun sürümünü alalım. Komut satırına aşağıdaki komutu girin:
api com.vmware.appliance.version1.system.version.get
İşte çıktım şöyle görünüyor:
Version:
Version: 7.0.3.01200
Product: VMware vCenter Server
Build: 20990077
Type: vCenter Server with an embedded Platform Services Controller
Summary: Patch for VMware vCenter Server 7.0
Releasedate: December 22, 2022
Installtime: 2023-02-22T00:09:11.184Z
7.0U3j çalıştırdığımı görebilirsiniz. Bu gönderiyi yazdığım sırada vCenter için 7.0U3k güncellemesi yoktu, sadece ESXi vardı. API çağrısı tarafından döndürülen gizemli bilgilerden bu sürüm numarasını nasıl elde ettim? vCenter derleme numarasını sürüm numarasına eşlemek için buraya gidin:
VMware vCenter Server’ın yapı numaraları ve sürümleri (2143838)
Aynı şeyi ESXi için anlamak için bu bağlantıyı kullanabilirsiniz:
VMware ESXi/ESX’in derleme numaraları ve sürümleri (2143832)
Son bir bağlantı. İşte birkaç başka VMware ürünü için bir bağlantı:
VMware ürünlerinin yapı numaralarını ve sürümlerini ilişkilendirme (1014508)
VMware ürünlerinin yapı numaraları ve sürümleri konusunda konudan uzaklaştığım için özür dilerim.
Bilgi almak veya “almak” için yapılan API çağrıları güzel. Peki ya bir ayarı değiştirmek istiyorsanız? Sonunda “set” kelimesi olan bir çağrı bulmak oldukça basit. Hadi gidip DNS sunucusu ayarlarını değiştirelim veya ayarlayalım. vCenter için.
Çağrı listesine bakın ve şu API çağrısını bulun:
com.vmware.appliance.version1.networking.dns.servers.set
API çağrılarını “ayarlamak” için bazı bilgiler sağlamanız gerekecektir. Hangi bilgilerin gerekli olduğunu anlamak için aşağıdaki komutu çalıştırın.
help api com.vmware.appliance.version1.networking.dns.servers.set
Çağrının çıktısı şu şekilde görünecektir:
Usage:
com.vmware.appliance.version1.networking.dns.servers.set
[--help/-h] --mode ENUM --servers STR
Description:
Set the DNS server configuration. If you set the mode
argument to "DHCP", a DHCP refresh is forced.
Input Arguments:
--mode ENUM
Define how to determine the DNS servers. Leave the servers
argument empty if the mode argument is "DHCP". Set the
servers argument to a comma-separated list of DNS servers if
the mode argument is "static". The DNS server are assigned
from the specified list. 'static': ' DNS address is static.
', 'dhcp': ' DNS address is automatically assigned by a DHCP
server. '
--servers STR
List of the currently used DNS servers.
DNS sunucusu ayarımı aldığımda bu bilgiler döndürüldüğünden DNS sunucu ayarımın statik olduğunu biliyorum. Bu, ENUM argümanı için ‘statik’ kullanacağım ve kullanmak istediğim sunucuların listesinin “192.168.124.31” olacağı anlamına geliyor.
Komut şu şekilde görünüyor:
api com.vmware.appliance.version1.networking.dns.servers.set --mode static --servers "192.168.124.31"
Eğer argümanlardan herhangi birini yanlış yazmış olsaydım veya argümanları yanlış biçimlendirmiş olsaydım bir hata alırdım. Yeni ayarı onaylayalım. Karşılaştırma için bu yazının başında verdiğim DNS get komutunu çalıştırın. Artık bir DNS sunucusunun eksik olduğunu göreceksiniz.
Config:
Mode: static
Servers: 192.168.124.31
İkinci DNS sunucusunu eklemek istersem ADD komutunu kullanmama gerek yok. Aşağıdaki komutu çalıştırabilirim:
api com.vmware.appliance.version1.networking.dns.servers.add --server "192.168.124.32"
İşte! Başladığım yere geri döndüm. Bunun doğru olduğunu onaylamak için DNS Sunucuları get komutunu çalıştırabilirim.
Bu makalenin tüm amacı, size API’lerin nasıl kullanılacağını ve programcı olmayan/DevOps olmayan bir kişi olarak bunları vCenter’da yapılandırma değişiklikleri almak ve ayarlamak için nasıl kullanabileceğinizi çok temel bir düzeyde tanıtmaktı. Bu, gizli bir dosyada veya vCenter GUI’si sizinle işbirliği yapmadığında DNS sunucusunu nasıl değiştireceğinizi anlamaya çalışmaktan da daha kolaydır.
Umarım bu yazı size yardımcı olmuştur.
Eğer benim eksik olduğunu düşündüğünüz ve eklenmesi gerektiğini düşündüğünüz bir şey varsa lütfen bana bildirin.
Okuduğunuz için teşekkürler!