ECS: Jak korzystać z polecenia API curl
Summary: Jak używać polecenia curl interfejsu programowania aplikacji (API) z przykładami GET i PUT.
Instructions
W tym artykule wiedzy pokazano, jak używać poleceń curl do korzystania z interfejsu API ECS.
W podręcznikach użytkownika, takich jak Podręcznik administracyjny ECS lub Podręcznik dostępu do danych, znajdują się przykłady użycia interfejsu API z poleceniami curl.
Zostanie wyświetlony sposób użycia polecenia curl do GET i PUT w interfejsie API. W tym przykładzie interfejs API certyfikatów LDAPS na bazę wiedzy ECS: Jak skonfigurować i zaakceptować wszystkie certyfikaty za pośrednictwem LDAPS w ECS.
Przykład curl — przykład
interfejsu API certyfikatu LDAPSInterfejs API certyfikatów LDAPS używa adresu IP zarządzania i nie zezwala na dostęp do emcmonitor, ale zamiast tego do użytkownika root. Jest to przykład użycia interfejsu API ECS, interfejs API certyfikatu LDAPS znajduje się w "/vdc/truststore". Twój interfejs API może być inny i znajdować się w innej lokalizacji.
Aby sprawdzić ustawienia ECS dotyczące ustawień certyfikatu LDAPS, najpierw uzyskaj adres IP zarządzania węzłami do użycia. Jeśli istnieje separacja sieci dla zarządzania interfejsem użytkownika, "getrackinfo -n" ma wartości "mgmt". Użyj adresu IP węzłów public.mgmt, replikacji i separacji sieci danych nie są wymagane w przypadku tych kroków:
# 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
Jeśli w centrum VDC nie ma separacji sieci public.mgmt, zamiast tego użyj publicznego adresu IP węzła. Należy pamiętać, że adres separacji sieci public.mgmt ma pierwszeństwo, jeśli jest ustawiony.
# 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
Użyj uzyskanego adresu IP zarządzania, aby uzyskać token użytkownika root (wymagane jest hasło użytkownika root):
# curl -s -k -v -u root https://<NodeManagementIP>:4443/login 2>&1
Przykład:
# 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
Jeśli dane wyjściowe nie są "HTTP/1.1 200 OK", sprawdź hasło i adres IP, sprawdź, czy istnieje separacja sieci zarządzania interfejsem użytkownika z polecenia "getrackinfo -n”. Za pomocą tokenu użytkownika głównego utwórz zmienną tokenu, prawidłowy token musi zostać zaktualizowany, jeśli w nowej sesji interfejsu wiersza polecenia:
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Aby sprawdzić wartość tokena, można uruchomić polecenie 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>
Celem powyższych kroków jest użycie tokenu użytkownika głównego w celu uzyskania dostępu curl do magazynu zaufanych interfejsu użytkownika ECS. Więcej informacji na temat dodawania niestandardowego certyfikatu LDAP można znaleźć w podręczniku administratora ECS. W tym przykładzie użycia interfejsu API ECS interfejs API certyfikatu LDAPS znajduje się w "/vdc/truststore". Twój interfejs API może znajdować się w innej lokalizacji.
Przykład curl GET:
Pobierz ustawienia truststore za pomocą polecenia curl GET:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings
Przykład:
# 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}
W powyższym przykładzie truststore "accept_all_certificates" jest ustawiona na wartość false. Oznacza to, że tylko przesłane certyfikaty LDAPS zgodne z certyfikatem serwera AD/LDAP mogą być zaufane przez ECS. Użytkownik może chcieć, aby to ustawienie było prawdziwe lub fałszywe w zależności od potrzeb. Aby przetestować połączenie LDAPS, należy ustawić wartość true i przetestować login użytkownika.
Utwórz plik json, aby zmienić ustawienia magazynu zaufania za pomocą polecenia curl z ładunkiem json:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
Moduł json.tool w języku Python może zweryfikować format pliku json. Jeśli wystąpi błąd, plik ten może nie być plikiem json. W tym przykładzie nie ma błędu i wyświetlany jest plik, więc jest to sformatowany plik json:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Przykład curl PUT:
Uruchom polecenie curl PUT z plikiem json jako ładunkiem:
# curl -s -k -X PUT -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://:4443/vdc/truststore/settings -d @truststoresettings.json
Aby sprawdzić, czy aktualizacja została przeprowadzona, uruchom polecenie 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}