ECS. Как использовать команду curl API

Summary: Как использовать команду curl интерфейса прикладного программирования (API) с примерами GET и PUT.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

В этой статье базы знаний показано, как использовать команды curl для использования API ECS.

В руководствах пользователя, таких как «Руководство по администрированию ECS» или «Руководство по доступу к данным», приведены примеры использования API с командами curl.

Здесь показано, как использовать команду curl для GET и PUT в API. В этом примере API сертификата LDAPS для каждой KB ECS: Настройка и принятие всех сертификатов через LDAPS в ECS.


Пример Curl — пример API сертификата LDAPS:
API сертификатов LDAPS использует IP-адрес управления и разрешает доступ не emcmonitor, а пользователю root. Это пример использования API ECS, 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

Если на виртуальном ЦОД нет разделения сети 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». С помощью токена пользователя root создайте переменную токена. Допустимый токен необходимо обновить, если в новом сеансе интерфейса командной строки:

# 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. Дополнительные сведения по разделу «Добавление пользовательского сертификата LDAP» см. в руководстве администратора ECS. В данном примере API сертификата ECS API сертификата LDAPS находится в папке "/vdc/truststore". Ваш API может находиться в другом месте.

 

Пример GET с помощью curl:

Получите параметры хранилища доверенных сертификатов с помощью команды GET curl:

# 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 может доверять только загруженным сертификатам LDAPS, которые соответствуют сертификату сервера AD/LDAP. Пользователь может захотеть установить для этого параметра значение «истина» или «ложь» в зависимости от его потребностей. Чтобы протестировать подключение LDAPS, можно установить для него значение true и протестировать вход пользователей в систему.

Создайте файл json, чтобы изменить параметры хранилища доверенных сертификатов с помощью команды 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}

Affected Products

ECS

Products

ECS Appliance
Article Properties
Article Number: 000194272
Article Type: How To
Last Modified: 04 Nov 2025
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.