CLIとAPI環境の設定

API や CLI を使用して IBM® Storage Ceph® as a Service を作成する前に、環境を設定してください。

一般的な前提条件

  1. IBM Storage Ceph as a Service にアクセスできるよう、 アカウントを設定してください。 アカウントが有料アカウントにアップグレードされていることを確認します。

  2. 展開用に提供されたオンプレミスエンドポイントのリストをすぐに利用できるようにしておいてください。

    環境変数としてエンドポイントを設定することができます。

CLI の前提条件

CLI を使用するには、まず「 IBM Cloud 」CLI および「 IBM Storage Ceph as a Service 」CLI プラグインをインストールする必要があります。

IBM Storage Ceph as a Service のオンプレミス配備で CLI を使用する前に、CLI を実行する環境がオンプレミス ネットワークに接続されていることを確認してください。

  1. IBM Cloud CLI をインストールします。

  2. IBM Storage Ceph as a Service CLIプラグインをインストール software-defined-storage.

    ibmcloud plugin install software-defined-storage
    

    IBM Storage Ceph as a Service CLI アクションでも、 sds というエイリアスを使用します。 CLI コマンドの使用方法を調べるには、以下を実行してください。

    ibmcloud sds --help
    ibmcloud sds volume-create --help
    ibmcloud sds host-create --help
    

APIエンドポイント経由でCLIにアクセスする

CLIをAPIエンドポイントを使用するように設定するには、以下の手順に従います

IBM Cloud CLIと関連プラグインをダウンロードする必要がある場合は、それらが置かれている公開リポジトリにアクセスできる必要があります。

  1. コアとなる IBM Cloud CLI と IBM Storage Ceph as a Service プラグインが最新バージョンにアップデートされていることを確認する:

    ibmcloud update
    
    ibmcloud plugin update software-defined-storage
    
  2. API エンドポイントを指定するには、次のコマンドを入力します

    ibmcloud login -a https://cloud.ibm.com
    

    CLIオプションの詳細については、 ibmcloud login を参照してください。

IAMトークンのセットアップ

CLI を使用して IBM Storage Ceph as a Service を作成するには、まず IAM トークンを取得し、エンドポイントを変数として保存し、 IBM Storage Ceph as a Service サービスへのアクセス権があることを確認する必要があります。

IAM_TOKEN=$(ibmcloud iam oauth-tokens --output json | jq -r '.iam_token)

API の前提条件

API を使用して「 IBM Storage Ceph as a Service 」を作成するには、まず IAM トークンを取得し、エンドポイントを変数として保存し、 CephaaS API サービスへのアクセス権限があることを確認する必要があります。

以下の例では、us-south リージョンのエンドポイントを使用します。

ステップ 1: API キーを変数として保管する

以下のコマンドを実行して、アカウントの API キーを環境変数に保管します。 API キーがない場合は、API キーの作成を参照してください。

apikey="<YOUR_API_KEY>"

ステップ 2: IBM IAM (ID およびアクセス管理) トークンを取得する

JSON処理ユーティリティ「 jq 」を使用してIAMトークンを取得・解析するには、次のコマンドを実行してください。 別の構文解析ツールを使用するようにコマンドを変更することも、コマンドの最後の部分を削除して手動でトークンを構文解析することもできます。

IAM_TOKEN=`curl -k -X POST \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --header "Accept: application/json" \
  --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
  --data-urlencode "apikey=$apikey" \
  "https://iam.cloud.ibm.com/identity/token"  |jq -r '(.token_type + " " + .access_token)'`

IAM トークンを表示するには、echo $IAM_TOKEN を実行します。 結果は次のようになります。

Bearer <your token>

Authorization ヘッダーでは、トークンの先頭が「Bearer」でなければなりません。 結果に「Bearer」が含まれていなかった場合は、この文字列を含むように IAM_TOKEN 変数を更新してください。 これらの例では、「Bearer」が IAM_TOKEN に含まれていると想定されています。

IAM トークンは最大 60 分間有効で、変更される可能性があります。 トークンが有効期限切れとなった場合、新しいトークンを生成する必要があります。 先ほど作成した IAM トークンの有効期限を設定するには、expires_in プロパティを使用してください。

ステップ 3: API エンドポイントを変数として保管する

$sds_endpoint は環境変数で、 IBM Storage Ceph as a Service の設定時に提供されたエンドポイントを指す。 URL のフォームです。 例えば、https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number} です。 後からセッションで再利用できるように、以下のコマンドを実行して API エンドポイントを変数に保管します。

以下に例を示します。

sds_api_endpoint="https://sds-cephaas.936481b2-379d-4ca6-94ed-4dc1911d749f.software-defined-storage.appdomain.cloud:33173"

この変数が保存されたことを確認するには、echo $sds_endpoint を実行して、その応答が空ではないことを確認します。

ステップ 4: API へのアクセス権限があることを確認する

エンドポイントと IAM トークンが取得できたら、 API リファレンス で説明されているいずれかの API を使用して、API アクセスを検証します。

予期しない結果が生じた場合は、--verbose (デバッグ) フラグを curl コマンドの後ろに追加して、詳細なロギング情報を取得してください。