API/SDK/REST Probleme - Benutzt das irgendwer erfolgreich?
Verfasst: 07.11.2024, 14:07
Moin zusammen,
aus Verzweiflung über die schiere Anzahl an APIs die einem Broadcom zur Verwaltung eines vCenters zur Verfügung stellt, wollte ich hier mal nach Erfahrungsberichten fragen, ob die jemand erfolgreich im Einsatz hat.
Ich versuche seit gestern die APIs zu bemühen mir mitzuteilen welche Version meine mit dem vCenter verbundenen ESXi Hosts (nicht die vCenter-Versionen!) haben.
Als Einstiegspunkt diente mir diese einfache Abfrage:
https://[vCenter-FQDN]/sdk/vim25/8.0.1.0/ServiceInstance/ServiceInstance/content
Ganz ohne Login oder irgendetwas bekommt man hier die vCenter-Version. Soweit so gut. (setzt vCenter >= 8.0.1 voraus, URL funktioniert auch unverändert wenn die Version bereits größer ist)
Es handelt sich hierbei wohl um die Broadcom "Virtual Infrastructure JSON API"https://developer.broadcom.com/xapis/virtual-infrastructure-json-api/latest/, welche getrennt zu betrachten ist von der "vSphere Automation API" https://developer.broadcom.com/xapis/vsphere-automation-api/latest/. Mit beiden habe ich es versucht.
Ich habe nun mit Postman etwas rumprobiert und konnte mir erfolgreich einen API-Key bzw eine "vmware-api-session-id" ausstellen, da hörte leider stets der Erfolg dann auf. Die JSON API scheint auf Anhieb erstmal gar nicht zu funktionieren, auch wenn man den API-Key als HTTP Header vermeintlich korrekt mitgibt, erhält man nur die Info "The session is not authenticated."
Bei der Automation API kommt dann bei Abfrage meines aktuellen User-Privilegs (als administrator@vsphere.local) "The following (object: com.vmware.vcenter.authorization.privilege_checks.list privileges: Sessions.CollectPrivilegeChecks) privileges are insufficient to user"
Die geforderten Privilegien sind aber nicht abgebildet in der Web-UI.
Bei näherer Betrachtung der Doku fallen aber auch häufige Lücken auf und tote Links.
Es beschleicht mich also das Gefühl, dass diese APIs evtl. gar nicht fertig sind, oder anwerweitig schlicht nicht funktionieren. Es wurmt mich etwas, da ich im Internet nur wenig Inhalte zu diesem Thema finde und die paar Blogposts, die ich gefunden habe tun das was ich schon versucht habe und haben dann damit Erfolg.
Grund für die ganze Untersuchung ist mein Wunsch über viele vCenter an vielen Standorten die Software-Stände automatisiert abzufragen und dazu dann einen Bericht zu generieren. Wird schlussendlich über C# oder Powershell erfolgen, aber die grundlegende Funktion wollte ich erstmal in Klicki-Bunti mit Postman beweisen.
Arbeitet ihr erfolgreich mit diesen APIs? Gibt es evtl. eine andere, die tatsächlich funktioniert? Muss ich irgendwo ein Häkchen setzen "API bitte auch erlauben" obwohl ich schon globaler Admin bin? Vielen Dank für euer Feedback!
aus Verzweiflung über die schiere Anzahl an APIs die einem Broadcom zur Verwaltung eines vCenters zur Verfügung stellt, wollte ich hier mal nach Erfahrungsberichten fragen, ob die jemand erfolgreich im Einsatz hat.
Ich versuche seit gestern die APIs zu bemühen mir mitzuteilen welche Version meine mit dem vCenter verbundenen ESXi Hosts (nicht die vCenter-Versionen!) haben.
Als Einstiegspunkt diente mir diese einfache Abfrage:
https://[vCenter-FQDN]/sdk/vim25/8.0.1.0/ServiceInstance/ServiceInstance/content
Ganz ohne Login oder irgendetwas bekommt man hier die vCenter-Version. Soweit so gut. (setzt vCenter >= 8.0.1 voraus, URL funktioniert auch unverändert wenn die Version bereits größer ist)
Es handelt sich hierbei wohl um die Broadcom "Virtual Infrastructure JSON API"https://developer.broadcom.com/xapis/virtual-infrastructure-json-api/latest/, welche getrennt zu betrachten ist von der "vSphere Automation API" https://developer.broadcom.com/xapis/vsphere-automation-api/latest/. Mit beiden habe ich es versucht.
Ich habe nun mit Postman etwas rumprobiert und konnte mir erfolgreich einen API-Key bzw eine "vmware-api-session-id" ausstellen, da hörte leider stets der Erfolg dann auf. Die JSON API scheint auf Anhieb erstmal gar nicht zu funktionieren, auch wenn man den API-Key als HTTP Header vermeintlich korrekt mitgibt, erhält man nur die Info "The session is not authenticated."
Bei der Automation API kommt dann bei Abfrage meines aktuellen User-Privilegs (als administrator@vsphere.local) "The following (object: com.vmware.vcenter.authorization.privilege_checks.list privileges: Sessions.CollectPrivilegeChecks) privileges are insufficient to user"
Die geforderten Privilegien sind aber nicht abgebildet in der Web-UI.
Bei näherer Betrachtung der Doku fallen aber auch häufige Lücken auf und tote Links.
Es beschleicht mich also das Gefühl, dass diese APIs evtl. gar nicht fertig sind, oder anwerweitig schlicht nicht funktionieren. Es wurmt mich etwas, da ich im Internet nur wenig Inhalte zu diesem Thema finde und die paar Blogposts, die ich gefunden habe tun das was ich schon versucht habe und haben dann damit Erfolg.
Grund für die ganze Untersuchung ist mein Wunsch über viele vCenter an vielen Standorten die Software-Stände automatisiert abzufragen und dazu dann einen Bericht zu generieren. Wird schlussendlich über C# oder Powershell erfolgen, aber die grundlegende Funktion wollte ich erstmal in Klicki-Bunti mit Postman beweisen.
Arbeitet ihr erfolgreich mit diesen APIs? Gibt es evtl. eine andere, die tatsächlich funktioniert? Muss ich irgendwo ein Häkchen setzen "API bitte auch erlauben" obwohl ich schon globaler Admin bin? Vielen Dank für euer Feedback!