10.6 RESTを使用したリモートからのコマンドの実行

exacliを介してリモート・ノードでコマンドを実行する以外に、RESTエンドポイントにアクセスするためのURLを使用してこれらを実行することもできます。

URLを使用してリモート・ノードでコマンドを実行するには、まず、ユーザー、ロールおよび権限を作成しておく必要があります。詳細は、「ExaCLIで使用するユーザーの作成」を参照してください。

コマンドを実行するURLの形式は次のとおりです:

https://remotenode:port/MS/RESTService/?cmd=command_to_run

リモート・ノードがセル・ノードの場合、ポートは443です。リモート・ノードがデータベース・ノードの場合、ポートは7879です。

デフォルトでは、コマンド結果はプレーン・テキストを使用して書式設定されます。XMLを使用して結果を書式設定するには、URLに&xml=trueを付け加えます。JSONを使用して結果を書式設定するには、&json=trueを使用します。次に例を示します:

https://remotenode:port/MS/RESTService/?cmd=command_to_run&json=true

ブラウザでURLを送信すると、ブラウザによって、証明書に関する警告が表示されます。新しい証明書に関する警告である場合は、通常、その警告を許容できます。変更された証明書に関する警告である場合は、証明書が許容可能であることを確認する必要があります。

その後、ブラウザによって、ユーザー名およびパスワードが要求されます。間違ったパスワードを連続して5回入力すると、アカウントはロックされます。同じアカウントに再度ログインするには、30分待機する必要があります。

同じセッションでさらにリクエストを送信した場合、セッションCookieの期限が切れないかぎり、ブラウザに証明書に関する警告が表示されることや、ユーザー名およびパスワードが要求されることはありません。

次の例では、list dbserver detailコマンドを実行します。

https://dbnode:7879/MS/RESTService/?cmd=list+dbserver+detail

次の例では、list cell detailコマンドを実行します。

https://cellnode:443/MS/RESTService/?cmd=list+cell+detail

RESTful形式でURLを指定することもできます。次に例を示します:

https://cellnode:443/MS/RESTService/celldisk/list?where=size>1g

curlを使用してURLを実行することもできます。ステップは次のとおりです:

  1. サーバーの証明書をダウンロードして格納します。

    ( openssl s_client -showcerts -connect remote_node:port < /dev/null | openssl x509 -outform PEM > mycertfile.pem ) >& /dev/null

    これは1回のみ行う必要があります。有効な証明書が指定されないかぎり、curlは続行されません。

  2. ユーザー名とパスワードを指定します。

    curl -u username:password -c cookiejar --cacert mycertfile.pem 'https://remote_node:port /MS/RESTService/login'
  3. コマンドを実行します。

    データベース・ノードの例:

    curl -b cookiejar --cacert mycertfile.pem 'https://remote_node:port/MS/RESTService/?cmd=list+dbserver+detail'

    セル・ノードの例:

    curl -b cookiejar --cacert mycertfile.pem 'https://remote_node:port/MS/RESTService/?cmd=list+cell+detail'