ECS:API curlコマンドの使用方法
Summary: アプリケーション プログラミング インターフェイス(API)curlコマンドをGETおよびPUTの例で使用する方法。
Instructions
このナレッジベース記事では、ECS APIの使用にcurlコマンドを使用する方法について説明します。
『ECS管理ガイド』や『データ アクセス ガイド』などのユーザー ガイドには、curlコマンドを使用したAPIの使用例が記載されています
curlコマンドを使用してAPIでGETおよびPUTを実行する方法が表示されます。この例では、KB ECSごとのLDAPS証明書APIは 次のようになります。ECSでLDAPSを介してすべての証明書をセットアップして受け入れる方法。
Curlの例 - LDAPS証明書APIの例:
LDAPS証明書APIは管理IPを使用し、emcmonitorアクセスは許可せず、代わりにrootユーザーを許可します。これはECS APIの使用例で、LDAPS証明書APIは "/vdc/truststore"の詳細を確認してください。お使いの API は異なり、場所も異なる場合があります
LDAPS証明書の設定に関するECS設定を確認するには、まず使用するノード管理IPを取得します。UI管理にネットワーク分離がある場合は、getrackinfo -n" には "mgmt" 値があります。次の手順では、ノードのpublic.mgmt IPアドレスを使用します。レプリケーションとデータ ネットワークの分離は必要ありません。
# 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
Example:
# 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ユーザー トークンを使用してトークン変数を作成し、新しい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ユーザー トークンを使用してECS UIトラストストアへのcurlアクセスを取得することです。「カスタムLDAP証明書の追加」の詳細については、『ECS管理者ガイド』を参照してください。このECS APIの使用例では、LDAPS証明書APIは "/vdc/truststore"の詳細を確認してください。API は別の場所にある可能性があります。
Curl GETの例:
curl GETコマンドを使用してトラストストア設定を取得します。
# curl -s -k -X GET -H Content-Type:application/json -H "$TOKEN" -H ACCEPT:application/json https://<NodeManagementIP>:4443/vdc/truststore/settings
Example:
# 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 に設定されています。つまり、アップロードされたLDAPS証明書のうちAD/LDAPサーバー証明書と一致するもののみが、ECSによって信頼されることが許可されます。ユーザーは、必要に応じてこれをtrueまたはfalseに設定できます。LDAPS接続をテストするには、trueに設定し、ユーザー ログインをテストすることで、LDAPS接続を検証できます
jsonファイルを作成して、jsonペイロードを使用したcurlコマンドでトラストストア設定を変更します。
# sudo vi truststoresettings.json
# sudo cat truststoresettings.json
{"accept_all_certificates": "true"}
Python の json.tool モジュールでは、json ファイル形式を検証できます。エラーが発生した場合、ファイルはjsonファイルではない可能性があります。この例では、エラーが発生せず、ファイルが出力されるため、これはフォーマットされたjsonファイルです。
# python -m json.tool truststoresettings.json
{
"accept_all_certificates": "true"
}
Curl PUTの例:
curl PUTコマンドを使用して、ペイロードとしてjsonファイルを含むcurlコマンドを実行します。
# 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}