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.

vCenter 7.0 API Komutları

https://docs.vmware.com/tr/VMware-vSphere/7.0/com.vmware.vsphere.vcenter.configuration.doc/GUID-CCC172CB-7CCB-41E4-B46A-0B5876E24EF5.html

vCenter 8.0 API Komutları

https://docs.vmware.com/tr/VMware-vSphere/8.0/vsphere-vcenter-yapılandırması/GUID-CCC172CB-7CCB-41E4-B46A-0B5876E24EF5.html

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!

Başa dön tuşu