ECS: De API-curl-opdracht gebruiken
Summary: De curl-opdracht Application Programming Interface (API) gebruiken met voorbeelden van GET en PUT.
Instructions
In dit Knowledge Base-artikel wordt uitgelegd hoe u curl-opdrachten kunt gebruiken voor ECS API-gebruik.
In de gebruikershandleidingen zoals de ECS Administration Guide of de Data Access Guide staan voorbeelden van het API-gebruik met curl-opdrachten.
Dit laat zien hoe je het curl-commando kunt gebruiken om een API op te halen en te zetten. In dit voorbeeld is de LDAPS-certificaat-API per KB ECS: Alle certificaten via LDAPS op ECS instellen en accepteren.
Curl example - LDAPS certificate API example:
LDAPS-certificaten API maakt gebruik van het beheer-IP en staat in plaats daarvan geen emcmonitor-toegang toe, maar de rootgebruiker. Dit is een voorbeeld van ECS API-gebruik. LDAPS-certificaat-API bevindt zich in de "/vdc/truststore". Uw API kan anders zijn en zich op een andere locatie bevinden.
Als u de ECS-instellingen met betrekking tot de LDAPS-certificaatinstellingen wilt onderzoeken, moet u eerst een IP-adres voor knooppuntbeheer aanschaffen om te gebruiken. Als er een netwerkscheiding is voor het UI-beheer, wordt het venster "getrackinfo -n" heeft "mgmt"-waarden. Gebruik de knooppunten public.mgmt IP-adres, de replicatie en scheiding van het datanetwerk zijn niet vereist voor deze stappen:
# getrackinfo -n Named networks ============== Node ID Network Ip Address Netmask Gateway VLAN Interface 1 repl 10.xxx.xxx.11 255.255.254.0 xxx.xxx.xxx.xxx 14 public 1 mgmt 10.xxx.xxx.21 255.255.254.0 xxx.xxx.xxx.xxx 13 public 1 data 10.xxx.xxx.31 255.255.254.0 xxx.xxx.xxx.xxx 15 public 2 repl 10.xxx.xxx.12 255.255.254.0 xxx.xxx.xxx.xxx 14 public 2 mgmt 10.xxx.xxx.22 255.255.254.0 xxx.xxx.xxx.xxx 13 public 2 data 10.xxx.xxx.32 255.255.254.0 xxx.xxx.xxx.xxx 15 public 3 repl 10.xxx.xxx.13 255.255.254.0 xxx.xxx.xxx.xxx 14 public 3 mgmt 10.xxx.xxx.23 255.255.254.0 xxx.xxx.xxx.xxx 13 public 3 data 10.xxx.xxx.33 255.255.254.0 xxx.xxx.xxx.xxx 15 public 4 repl 10.xxx.xxx.14 255.255.254.0 xxx.xxx.xxx.xxx 14 public 4 mgmt 10.xxx.xxx.24 255.255.254.0 xxx.xxx.xxx.xxx 13 public 4 data 10.xxx.xxx.34 255.255.254.0 xxx.xxx.xxx.xxx 15 public
Als er geen netwerk public.mgmt-scheiding op de VDC is, gebruikt u in plaats daarvan het openbare IP-adres van het knooppunt. Opmerking: het netwerkscheidingsadres public.mgmt heeft voorrang als deze is ingesteld.
# getrackinfo Node private Node Public BMC Ip Address Id Status Mac Ip Address Mac Ip Address Node Name =============== ====== ====== ================= ================= ================= ================= ========= 192.1XX.2XX.1 1 MA a4:bf:xx:xx:xx:74 10.xx.xx.1 a4:bf:xx:xx:xx 192.1XX.2XX.101 provo-red 192.1XX.2XX.2 2 SA a4:bf:xx:xx:xx:c8 10.xx.xx.2 a4:bf:xx:xx:xx 192.1XX.2XX.102 sandy-red 192.1XX.2XX.3 3 SA a4:bf:xx:xx:xx:e0 10.xx.xx.3 a4:bf:xx:xx:xx 192.1XX.2XX.103 orem-red 192.1XX.2XX.4 4 SA a4:bf:xx:xx:xx:56 10.xx.xx.4 a4:bf:xx:xx:xx 192.168.219.104 ogden-red
Gebruik het beheer-IP-adres dat is verkregen om het rootgebruikerstoken op te halen. Het rootgebruikerswachtwoord is vereist:
# curl -s -k -v -u root https://<NodeManagementIP>:4443/login 2>&1
Voorbeeld:
# curl -s -k -v -u root https://10.xxx.xxx.21:4443/login 2>&1 Enter host password for user 'root': ...... < HTTP/1.1 200 OK < Date: Thu, 14 Jan 2021 13:51:24 GMT < Content-Type: application/xml < Content-Length: 93 < Connection: keep-alive < X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8= < X-SDS-AUTH-USERNAME: root < X-SDS-AUTH-MAX-AGE: 28800 < * Connection #0 to host 10.xxx.xxx.21 left intact root
Als de uitvoer niet "HTTP/1.1 200 OK" is, controleer dan het wachtwoord en IP-adres, controleer of er een UI-beheernetwerkscheiding bestaat van de opdracht "getrackinfo -n". Maak met het root-gebruikerstoken een tokenvariabele. Een geldig token moet worden bijgewerkt als in een nieuwe CLI-sessie:
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Om de waarde van het token te testen, kunt u een curl-opdracht uitvoeren:
# curl -k -X GET -H "$TOKEN" https://10.xxx.xxx.21:4443/object/capacity | xmllint --format - % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 176 100 176 0 0 249 0 --:--:-- --:--:-- --:--:-- 250 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <cluster_capacity> <totalFree_gb>100657</totalFree_gb> <totalProvisioned_gb>447005</totalProvisioned_gb> </cluster_capacity>
Het doel van de bovenstaande stappen is om het root-gebruikerstoken te gebruiken om curl-toegang te krijgen tot de ECS UI truststore. Raadpleeg de ECS beheerdershandleiding voor meer informatie over Add custom LDAP certificate. In dit voorbeeld van ECS API-gebruik bevindt de LDAPS-certificaat-API zich in de "/vdc/truststore". Uw API bevindt zich mogelijk op een andere locatie.
Curl GET voorbeeld:
Haal de truststore-instellingen op met een curl GET-opdracht:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings
Voorbeeld:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://10.xxx.xxx.21:4443/vdc/truststore/settings
{"accept_all_certificates":false}
In het bovenstaande voorbeeld is de truststore "accept_all_certificates" is ingesteld op false. Dit betekent dat alleen geüploade LDAPS-certificaten die overeenkomen met een AD/LDAP-servercertificaat door ECS kunnen worden vertrouwd. Een gebruiker wil dit mogelijk instellen op waar of onwaar, afhankelijk van zijn behoeften. U kunt de LDAPS-verbinding testen door deze in te stellen op true en de aanmelding van de gebruiker te testen.
Maak een json-bestand om de truststore-instellingen te wijzigen met een curl-opdracht met een json-payload:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
De json.tool-module op python kan een json-bestandsindeling valideren. Als er een fout optreedt, is het bestand mogelijk geen JSON-bestand. In dit voorbeeld is er geen fout en wordt het bestand uitgevoerd, dus het is een geformatteerd json-bestand:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Curl PUT voorbeeld:
Voer een curl-opdracht uit met een json-bestand als de payload met een curl PUT-opdracht:
# curl -s -k -X PUT -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://:4443/vdc/truststore/settings -d @truststoresettings.json
Om te controleren of het is bijgewerkt, voert u de opdracht curl GET uit:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://10.xxx.xxx.21:4443/vdc/truststore/settings
{"accept_all_certificates":true}