ECS: Så här använder du API-curl-kommandot
Summary: Så här använder du curl-kommandot Application Programming Interface (API) med GET- och PUT-exempel.
Instructions
Den här kunskapsartikeln visar hur du använder curl-kommandon för ECS API-användning.
I användarhandböcker som ECS-administrationsguiden eller dataåtkomstguiden finns det exempel på API-användning med curl-kommandon.
Här visas hur du använder curl kommandot för att GET och PUT på ett API. I det här exemplet är LDAPS-certifikat-API:et per KB ECS: Konfigurera och acceptera alla certifikat via LDAPS på ECS.
Curl-exempel – Exempel på LDAPS-certifikat-API:
API:et för LDAPS-certifikat använder IP-adressen för hantering och tillåter inte emcmonitor-åtkomst, utan rotanvändaren i stället. Det här är ett exempel på ECS API-användning, LDAPS-certifikat-API:et finns i "/vdc/truststore". Ditt API kan vara annorlunda och på en annan plats.
Om du vill undersöka ECS-inställningarna för LDAPS-certifikatinställningarna måste du först skaffa en IP-adress för nodhantering som du kan använda. Om det finns nätverksseparation för användargränssnittshanteringen, "getrackinfo -n" har "mgmt"-värden. Använd noderna public.mgmt IP-adress, replikering och datanätverksseparation krävs inte för följande steg:
# 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
Om det inte finns någon separation för nätverket public.mgmt på VDC använder du nodens offentliga IP-adress i stället. Observera att public.mgmt-nätverksseparationsadressen har företräde om den har angetts.
# 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
Använd den IP-adress för hantering som hämtats för att hämta rotanvändartoken, rotanvändarlösenord krävs:
# curl -s -k -v -u root https://<NodeManagementIP>:4443/login 2>&1
Exempel:
# 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
Om utdata inte är "HTTP/1.1 200 OK", kontrollera lösenordet och IP-adressen, kontrollera om det finns nätverksseparation för UI-hantering från kommandot "getrackinfo -n”. Med rotanvändartoken skapar du en tokenvariabel, en giltig token måste uppdateras om i en ny CLI-session:
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Om du vill testa token is-värdet kan du köra ett curl-kommando:
# 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>
Syftet med stegen ovan är att använda rotanvändartoken för att få curl-åtkomst till ECS-gränssnittets förtroendearkiv. Mer information om hur du lägger till anpassat LDAP-certifikat finns i ECS-administratörshandboken. I det här exemplet på ECS API-användning finns LDAPS-certifikat-API:t i "/vdc/truststore". Ditt API kan finnas på en annan plats.
Curl GET-exempel:
Hämta truststore-inställningarna med ett curl GET-kommando:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings
Exempel:
# 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}
I exemplet ovan är truststore "accept_all_certificates" är inställt på false. Det innebär att endast uppladdade LDAPS-certifikat som matchar ett AD/LDAP-servercertifikat får vara betrodda av ECS. En användare kanske vill ha den här uppsättningen till sant eller falskt beroende på deras behov. Om du vill testa LDAPS-anslutningen kan du validera den genom att ställa in den på true och testa användarens inloggning.
Skapa en json-fil för att ändra truststore-inställningarna med ett curl-kommando med en json-nyttolast:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
Modulen json.tool på python kan verifiera ett json-filformat. Om det uppstår ett fel kanske filen inte är en json-fil. I det här exemplet finns det inget fel och matar ut filen, så det är en formaterad json-fil:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Curl PUT-exempel:
Kör ett curl-kommando med en json-fil som nyttolast med ett curl PUT-kommando:
# curl -s -k -X PUT -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://:4443/vdc/truststore/settings -d @truststoresettings.json
Kontrollera att den är uppdaterad genom att köra curl GET-kommandot:
# 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}