ECS: API curl komutu nasıl kullanılır?
Summary: Uygulama Programlama Arabirimi (API) curl komutunu GET ve PUT örnekleriyle kullanma.
Instructions
Bu Knowledge Base makalesinde, ECS API kullanımı için curl komutlarının nasıl kullanılacağı gösterilmektedir.
ECS Yönetim Kılavuzu veya Veri Erişim Kılavuzu gibi kullanıcı kılavuzlarında, curl komutlarıyla API kullanımına örnekler vardır.
Bu, bir API'de GET ve PUT için curl komutunun nasıl kullanılacağını görüntüler. Bu örnekte, KB ECS başına LDAPS sertifika API'si: ECS'de LDAPS üzerinden tüm sertifikaları ayarlama ve kabul etme.
Curl örneği - LDAPS sertifika API'si örneği:
LDAPS sertifikaları API'si, yönetim IP'sini kullanır ve emcmonitor erişimine değil, bunun yerine kök kullanıcıya izin verir. Bu, ECS API kullanımına bir örnektir. LDAPS sertifika API'si, ECS API si "/vdc/truststore". API'niz farklı ve farklı bir konumda olabilir.
LDAPS sertifika ayarlarıyla ilgili ECS ayarlarını incelemek için önce kullanılacak bir Düğüm Yönetimi IP'si edinin. Kullanıcı arayüzü yönetimi için ağ ayrımı varsa, "getrackinfo -n" "mgmt" değerlerine sahiptir. public.mgmt IP address düğümlerini kullanın, aşağıdaki adımlar için çoğaltma ve veri ağ ayrımı gerekli değildir:
# 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'de ağ public.mgmt ayrımı yoksa bunun yerine düğümün genel IP adresini kullanın. Ayarlanırsa public.mgmt ağ ayırma adresinin öncelikli olduğunu unutmayın.
# 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
Kök kullanıcı belirtecini almak için alınan yönetim IP adresini kullanın; kök kullanıcı parolası gereklidir:
# curl -s -k -v -u root https://<NodeManagementIP>:4443/login 2>&1
Örneğin:
# 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
Çıktı "HTTP/1.1 200 OK" değilse, parolayı ve IP adresini kontrol edin, " komutundan UI yönetim ağ ayrımının mevcut olup olmadığını kontrol edingetrackinfo -n". Kök kullanıcı belirteciyle bir belirteç değişkeni oluşturun. Yeni bir CLI oturumundayken geçerli bir belirteç güncelleştirilmelidir:
# export TOKEN='X-SDS-AUTH-TOKEN: BAAcdWhGbnVRVjd1WlpmR0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAgAC0A8='
Belirtecin değer olduğunu test etmek için bir curl komutu çalıştırabilirsiniz:
# 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>
Yukarıdaki adımların amacı, ECS UI truststore'a curl erişimi elde etmek için kök kullanıcı belirtecini kullanmaktır. Özel LDAP sertifikası ekleme" hakkında daha fazla bilgi için ECS Yönetici kılavuzuna bakın. Bu ECS API kullanımı örneğinde, LDAPS sertifika API'si "/vdc/truststore". API'niz farklı bir konumda olabilir.
Curl GET örneği:
Truststore ayarlarını curl GET komutuyla alın:
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings
Örneğin:
# 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}
Yukarıdaki örnekte, truststore "accept_all_certificates" false olarak ayarlanır. Bu, yalnızca bir AD/LDAP sunucu sertifikasıyla eşleşen yüklenen LDAPS sertifikalarına ECS tarafından güvenilebileceği anlamına gelir. Bir kullanıcı, gereksinimlerine bağlı olarak bunun doğru veya yanlış olarak ayarlanmasını isteyebilir. LDAPS bağlantısını test etmek için bağlantının true olarak ayarlanması ve test edilmesinin kullanıcı oturum açma doğrulaması doğrulanabilir.
Truststore ayarlarını json yüküne sahip bir curl komutuyla değiştirmek için bir json dosyası oluşturun:
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
python üzerindeki json.tool modülü bir json dosya biçimini doğrulayabilir. Bir hata varsa dosya bir json dosyası değildir. Bu örnekte herhangi bir hata görülmez ve dosya çıkarılır, bu nedenle çıktı, biçimlendirilmiş bir json dosyasıdır:
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Curl PUT örneği:
Curl PUT komutuyla yük olarak json dosyasıyla bir curl komutu çalıştırın:
# curl -s -k -X PUT -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://:4443/vdc/truststore/settings -d @truststoresettings.json
Güncelleştirilmiş olup olmadığını kontrol etmek için curl GET komutunu çalıştırın:
# 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}