ECS: Cómo usar el comando curl de API
Summary: Cómo utilizar el comando curl de la interfaz de programación de aplicaciones (API) con ejemplos GET y PUT.
Instructions
En este artículo de la base de conocimientos, se muestra cómo utilizar los comandos curl para el uso de la API de ECS.
En las guías del usuario, como la Guía de administración de ECS o la Guía de acceso a datos, hay ejemplos del uso de la API con comandos curl.
Esto muestra cómo usar el comando curl para GET y PUT en una API. En este ejemplo, la API de certificado de LDAPS por KB ECS: Cómo configurar y aceptar todos los certificados a través de LDAPS en ECS.
Ejemplo de Curl: Ejemplo de API de certificado LDAPS:
La API de certificados LDAPS utiliza la IP de administración y no permite el acceso a emcmonitor, sino al usuario raíz. Este es un ejemplo del uso de la API de ECS, la API de certificado de LDAPS se encuentra en la "/vdc/truststore". Su API puede ser diferente y estar en una ubicación diferente.
Para examinar la configuración de ECS con respecto a la configuración del certificado LDAPS, primero obtenga una IP de administración de nodos para utilizar. Si hay una separación de red para la administración de la interfaz del usuario, la opción "getrackinfo -n" tiene valores "mgmt". Utilice la dirección IP public.mgmt de los nodos, la replicación y la separación de la red de datos no son necesarias para estos pasos:
# 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
Si no hay una separación de red public.mgmt en el VDC, utilice la dirección IP pública del nodo en su lugar. Tenga en cuenta que la dirección de separación de red public.mgmt tiene prioridad si se establece.
# 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
Utilice la dirección IP de administración adquirida para obtener el token de usuario raíz; se necesita una contraseña de usuario raíz:
# curl -s -k -v -u root https://<NodeManagementIP>:4443/login 2>&1
Ejemplo:
# 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
Si el resultado no es "HTTP/1.1 200 OK", compruebe la contraseña y la dirección IP, y compruebe si existe una separación de la red de administración de la interfaz de usuario desde el comando "getrackinfo -n". Con el token de usuario raíz, cree una variable de token. Se debe actualizar un token válido si se encuentra en una nueva sesión de la CLI:
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Para probar que el token es un valor, puede ejecutar un comando 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>
El propósito de los pasos anteriores es usar el token de usuario raíz para obtener acceso curl al almacén de confianza de la interfaz del usuario de ECS. Consulte la guía de administración de ECS para obtener más información sobre "Add custom LDAP certificate". En este ejemplo de uso de la API de ECS, la API de certificado de LDAPS se encuentra en la "/vdc/truststore". Es posible que su API esté en una ubicación diferente.
Ejemplo de GET de curl:
Obtenga la configuración de truststore con un comando GET curl:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings
Ejemplo:
# 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}
En el ejemplo anterior, el truststore "accept_all_certificates" está configurado en false. Esto significa que solo los certificados LDAPS cargados que coincidan con un certificado del servidor AD/LDAP pueden ser de confianza para ECS. Es posible que un usuario desee que esta configuración se configure en verdadero o falso según sus necesidades. Para probar la conexión LDAPS, configurarla en verdadero y probar el inicio de sesión de los usuarios puede validar.
Cree un archivo json para cambiar la configuración del almacén de confianza mediante un comando curl con una carga útil json:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
El módulo json.tool en Python puede validar un formato de archivo json. Si hay un error, es posible que el archivo no sea un archivo json. En este ejemplo, no hay ningún error y genera el archivo, por lo que es un archivo json con formato:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Ejemplo de PUT de curl:
Ejecute un comando curl con un archivo json como la carga útil con un comando 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
Para comprobar que esté actualizado, ejecute el comando 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}