ECS: API curl -komennon käyttäminen
Summary: Application Programming Interface (API) curl -komennon käyttäminen GET- ja PUT-esimerkkien kanssa.
Instructions
Tässä tietämysartikkelissa kerrotaan, miten curl-komentoja käytetään ECS-ohjelmointirajapinnan käytössä.
Käyttöoppaissa, kuten ECS Administration Guide tai Data Access Guide, on esimerkkejä API:n käytöstä curl-komennoilla.
Tämä näyttää, miten curl-komentoa käytetään ohjelmointirajapinnan GET- ja PUT-komentoihin. Tässä esimerkissä KB ECS:n LDAPS-varmenteen ohjelmointirajapinta: Kaikkien varmenteiden käyttöönotto ja hyväksyminen LDAPS:n kautta ECS:ssä.
Curl-esimerkki - esimerkki LDAPS-varmenteen ohjelmointirajapinnasta:
LDAPS-varmenteiden API käyttää hallinnan IP-osoitetta eikä salli emcmonitor-käyttöä, vaan pääkäyttäjän. Tämä on esimerkki ECS-ohjelmointirajapinnan käytöstä, LDAPS-varmenteen API sijaitsee "/vdc/truststore". API voi olla erilainen ja eri sijainnissa.
Jos haluat tarkastella LDAPS-varmenneasetuksia koskevia ECS-asetuksia, hanki ensin solmun hallinnan IP-osoite. Jos käyttöliittymän hallinta on erotettu verkosta, "getrackinfo -n" on "mgmt" -arvoja. Käytä solmujen public.mgmt IP-osoitetta, replikointia ja tietoverkon erottamista ei tarvita seuraavissa vaiheissa:
# 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
Jos VDC:ssä ei ole verkon public.mgmt-erottelua, käytä solmun julkista IP-osoitetta. Huomaa, että public.mgmt-verkon erotusosoite on ensisijainen, jos se on määritetty.
# 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
Hae pääkäyttäjän tunnus käyttämällä hallinnan IP-osoitetta (edellyttää pääkäyttäjän salasanaa):
# curl -s -k -v -u root https://<NodeManagementIP>:4443/login 2>&1
Esimerkki:
# 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
Jos tulos ei ole "HTTP/1.1 200 OK", tarkista salasana ja IP-osoite, onko käyttöliittymän hallintaverkko erotettu komennosta "getrackinfo -n". Luo pääkäyttäjän tunnuksella tunnusmuuttuja, kelvollinen tunnus on päivitettävä, jos uudessa komentorivi-istunnossa:
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Voit testata tunnusta curl-komennolla:
# 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>
Yllä olevien vaiheiden tarkoituksena on käyttää pääkäyttäjän tunnusta ECS-käyttöliittymän luottamussäilön kaarevuuden käyttämiseen. Katso ECS:n järjestelmänvalvojan oppaasta lisätietoja oman LDAP-varmenteen lisäämisestä. Tässä ECS-ohjelmointirajapinnan käyttöä koskevassa esimerkissä LDAPS-varmenteen API sijaitsee "/vdc/truststore". API voi olla eri sijainnissa.
Curl GET esimerkki:
Hanki truststore-asetukset curl GET -komennolla:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings
Esimerkki:
# 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}
Edellä olevassa esimerkissä truststore "accept_all_certificates" arvoksi on määritetty false. Tämä tarkoittaa, että ECS voi luottaa vain ladattuihin LDAPS-varmenteisiin, jotka vastaavat AD/LDAP-palvelimen varmennetta. Käyttäjä voi haluta, että arvoksi määritetään tosi tai epätosi tarpeidensa mukaan. LDAPS-yhteyden testaamiseksi voidaan vahvistaa sen asettaminen tosi ja käyttäjän kirjautumisen testaaminen.
Luo json-tiedosto truststore-asetusten muuttamiseksi curl-komennolla, jossa on json-tietosisältö:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
Pythonin json.tool-moduuli voi vahvistaa json-tiedostomuodon. Jos tapahtuu virhe, tiedosto ei välttämättä ole json-tiedosto. Tässä esimerkissä virhettä ei tapahdu ja tiedosto tulostetaan, joten se on json-tiedosto:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Curl PUT -esimerkki:
Suorita json-tiedoston sisältävä curl PUT -komento:
# curl -s -k -X PUT -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://:4443/vdc/truststore/settings -d @truststoresettings.json
Tarkista curl GET -komennolla, että se on päivitetty:
# 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}