ECS: Jak používat příkaz API curl
Summary: Jak používat příkaz curl rozhraní API (Application Programming Interface) s příklady GET a PUT.
Instructions
Tento článek znalostní databáze popisuje, jak používat příkazy curl pro použití rozhraní ECS API.
V uživatelských příručkách, jako je Průvodce správou ECS nebo Průvodce přístupem k datům, jsou uvedeny příklady použití rozhraní API s příkazy curl.
To ukazuje, jak použít příkaz curl k GET a PUT na rozhraní API. V tomto příkladu je rozhraní API certifikátu LDAPS na článek znalostní databáze ECS: Jak nastavit a přijmout všechny certifikáty prostřednictvím protokolu LDAPS v systému ECS.
Příklad curl – příklad rozhraní API pro certifikát LDAPS:
Rozhraní API pro certifikáty LDAPS používá IP adresu pro správu a nepovoluje přístup příkazu emcmonitor, ale místo toho uživatele root. Toto je příklad použití rozhraní API ECS. Certifikační rozhraní LDAPS API se nachází ve složce "/vdc/truststore". Vaše rozhraní API může být jiné a na jiném místě.
Chcete-li zkontrolovat nastavení ECS týkající se nastavení certifikátu LDAPS, nejprve získejte IP adresu správy uzlů. Pokud je síť pro správu uživatelského rozhraní oddělená, zobrazí se "getrackinfo -n" má hodnoty "mgmt". Pro tyto kroky se nevyžaduje použití public.mgmt IP adresy uzlů, replikace a oddělení datové sítě:
# 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
Pokud ve VDC není žádné oddělení sítě public.mgmt, použijte místo toho veřejnou IP adresu uzlu. Všimněte si, že public.mgmt adresa oddělující síť má přednost, pokud je nastavená.
# 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
Použijte získanou IP adresu pro správu k pořízení tokenu uživatele root (je nutné heslo uživatele root:
# curl -s -k -v -u root https://<NodeManagementIP>:4443/login 2>&1
Příklad:
# 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
Pokud výstup není "HTTP/1.1 200 OK", zkontrolujte heslo a IP adresu a z příkazu zkontrolujte, zda existuje oddělení sítě pro správu uživatelského rozhraní.getrackinfo -n“. S tokenem kořenového uživatele vytvořte proměnnou tokenu, pokud jste v nové relaci rozhraní příkazového řádku, musí se aktualizovat platný token:
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Platnost tokenu můžete otestovat pomocí příkazu curl:
# 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>
Účelem výše uvedených kroků je použít token uživatele root k získání přístupu curl k úložišti důvěryhodných certifikátů uživatelského rozhraní ECS. Další informace o části "Přidání vlastního certifikátu LDAP" naleznete v příručce pro správce systému ECS. V tomto příkladu použití rozhraní ECS API je rozhraní LDAPS certificate API umístěno ve složce "/vdc/truststore". Vaše rozhraní API se může nacházet na jiném místě.
Příklad Curl GET:
Získejte nastavení truststore pomocí příkazu curl GET:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings
Příklad:
# 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}
Ve výše uvedeném příkladu úložiště důvěryhodnosti "accept_all_certificates" je nastavena na hodnotu false. To znamená, že systém ECS může důvěřovat pouze nahraným certifikátům LDAPS, které odpovídají certifikátu serveru AD/LDAP. Uživatel může chtít, aby tato hodnota byla nastavena na hodnotu true nebo false v závislosti na jeho potřebách. Chcete-li otestovat připojení LDAPS, nastavte ho na hodnotu true a otestujte přihlášení uživatele.
Vytvořte soubor json pro změnu nastavení truststore pomocí příkazu curl s datovou částí json:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
Modul json.tool v Pythonu může ověřit formát souboru JSON. Pokud dojde k chybě, možná se nejedná o soubor json. V tomto příkladu nedošlo k chybě a soubor je ve výstupu, jde tedy o formátovaný soubor json:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Příklad Curl PUT:
Spusťte příkaz curl, kde je datovou částí soubor json, pomocí příkazu curl PUT:
# curl -s -k -X PUT -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://:4443/vdc/truststore/settings -d @truststoresettings.json
Zkontrolujte, zda došlo k úpravě, pomocí příkazu curl GET:
# 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}