ЕКС: Як використовувати команду curl API
Summary: Як використовувати команду curl інтерфейсу прикладного програмування (API) з прикладами GET і PUT.
Instructions
У цій статті знань показано, як використовувати команди curl для використання ECS API.
У посібниках для користувачів, таких як ECS Administration Guide або Data Access Guide, є приклади використання API з командами curl.
Тут показано, як використовувати команду curl для GET та PUT на API. У цьому прикладі API сертифіката LDAPS per KB ECS: Як налаштувати та прийняти всі сертифікати через LDAPS на ECS.
Приклад curl - приклад API сертифіката LDAPS:
API сертифікатів LDAPS використовує IP керування та дозволяє доступ не emcmonitor, а користувач root. Це приклад використання ECS API, API сертифіката LDAPS знаходиться в "/vdc/truststore". Ваш API може бути іншим і знаходитися в іншому місці.
Щоб перевірити параметри ECS щодо параметрів сертифіката LDAPS, спочатку отримайте IP-адресу для керування вузлами. Якщо є поділ мережі для керування інтерфейсом користувача, «getrackinfo -n" має значення "mgmt". Використовуйте IP-адресу вузлів public.mgmt, реплікація та поділ мережі передачі даних не потрібні для цих кроків:
# 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
Якщо на VDC немає поділу мережі public.mgmt, використовуйте замість цього публічну IP-адресу вузла. Зверніть увагу, що адреса поділу мережі public.mgmt має пріоритет, якщо вона встановлена.
# 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
Використовуйте отриману керуючу IP-адресу для отримання токена користувача root, пароль користувача root обов'язковий:
# curl -s -k -v -u root https://<NodeManagementIP>:4443/login 2>&1
Приклад:
# 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
Якщо на виході не "HTTP/1.1 200 OK", перевірте пароль та IP-адресу, перевірте, чи існує поділ мережі керування інтерфейсом користувача від команди "getrackinfo -n". За допомогою кореневого токена користувача створіть змінну токена, дійсний токен повинен бути оновлений, якщо в новому сеансі CLI:
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Щоб перевірити значення токена, ви можете виконати команду 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>
Метою вищезазначених кроків є використання токена користувача root для отримання доступу curl до сховища довіри ECS UI. Зверніться до посібника з адміністрування ECS для отримання додаткової інформації про «Додати власний сертифікат LDAP». У цьому прикладі використання ECS API сертифіката LDAPS знаходиться у файлі "/vdc/truststore". Ваш API може знаходитися в іншому місці.
Приклад завивки GET:
Отримайте налаштування truststore за допомогою команди curl GET:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings
Приклад:
# 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}
У наведеному вище прикладі сховище довіри "accept_all_certificates" встановлено значення false. Це означає, що ECS може довіряти лише завантажені сертифікати LDAP, які відповідають сертифікату сервера AD/LDAP. Користувач може захотіти, щоб цей набір був true або false, залежно від його потреб. Щоб перевірити з'єднання LDAPS, встановіть для нього значення true і перевірте логін користувача.
Створіть json-файл, щоб змінити налаштування truststore за допомогою команди curl із корисним навантаженням json:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
Модуль json.tool на python може перевіряти формат файлу json. Якщо сталася помилка, можливо, файл не є файлом json. У цьому прикладі помилки немає і виводить файл, тому це форматований json-файл:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Приклад Curl PUT:
Запустіть команду curl з файлом json як корисним навантаженням з командою 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
Щоб перевірити, що він оновився, виконайте команду 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}