API 環境と CLI 環境のセットアップ

API または CLI を使用して IBM Cloud® Virtual Private Cloud (VPC) を作成する前に、環境をセットアップします。

一般的な前提条件

  1. VPC にアクセスできるようにアカウントをセットアップします。 アカウントが有料アカウントにアップグレードされていることを確認します。

  2. 仮想サーバー・インスタンスへの接続に使用するパブリック SSH 鍵が存在していることを確認します。 例えば、Linux サーバーで SSH 鍵を生成するには、以下のコマンドを実行します。

    ssh-keygen -t rsa
    

    このコマンドにより 2 つのファイルが生成されます。 生成された公開鍵は、ホーム・ディレクトリーの .ssh ディレクトリー下の id_rsa.pub ファイル (例: .../.ssh/id_rsa.pub) に入っています。

    詳しくは、SSH 鍵を参照してください。

CLI の前提条件

CLI を使用して VPC を作成する前に、IBM Cloud CLI および VPC CLI プラグインをインストールする必要があります。

{: tag-deprecated} [は非推奨となりました]。 IBM Cloud CLI は、 LinuxONE ( s390x プロセッサアーキテクチャ)ではサポートされていません( プロセッサアーキテクチャ)。 ただし、サポートされている他のプラットフォームに CLI をインストールし、それを LinuxONE (s390x プロセッサー・アーキテクチャー) 仮想サーバー・インスタンスで使用することはできます。

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

  2. VPC CLI プラグインをインストールします。

    ibmcloud plugin install vpc-infrastructure
    

    VPC CLI のアクションには、拡張子 is が使用されます。 CLI コマンドの使用方法を調べるには、以下を実行してください。

    ibmcloud is help
    ibmcloud is help vpc-create
    ibmcloud is help instance-create
    

    CLI を使用してリソースを作成する方法については、「 VPC リソースの作成 」を参照してください。

VPC API プライベート・エンドポイントを介した CLI へのアクセス

VPC API プライベート・エンドポイントを使用するように CLI を設定するには、以下の手順を実行します。

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

  1. コア IBM Cloud CLI および VPC インフラストラクチャー・サービス・プラグインが最新バージョンに更新されていることを確認します。

    ibmcloud update
    ibmcloud plugin update vpc-infrastructure
    
  2. API プライベート・エンドポイント・モードに切り替えるには、次のコマンドを入力します。

    ibmcloud login -a private.cloud.ibm.com
    

    現在、APIのプライベートエンドポイントモードは、 us-south および us-east のリージョンでのみサポートされています。

API の前提条件

API を使用して VPC を作成する前に、IAM トークンを取得し、エンドポイントを変数として保管し、VPC API サービスに対するアクセス権限があることを確認する必要があります。

以下の例では、us-south リージョンのエンドポイントを使用します。 他の API エンドポイントを確認するには、Virtual Private Cloud API を参照してください。

ステップ 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 トークンは失効するため、上記のステップを繰り返して、IAM トークンを 1 時間ごとに更新する必要があります。

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

後からセッションで再利用できるように、以下のコマンドを実行して API エンドポイントを変数に保管します。

パブリック・エンドポイント:

vpc_api_endpoint="https://us-south.iaas.cloud.ibm.com"

仮想プライベート・エンドポイント:

vpc_api_endpoint="https://us-south.private.iaas.cloud.ibm.com"

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

サポートされるエンドポイント・リージョンについては、 使用可能なエンドポイント を参照してください。

ステップ 4: API バージョンを変数として保管する

すべての API 要求に version パラメーターを含める必要があります。形式は、YYYY-MM-DD にします。 以下のコマンドを実行してバージョンの日付を変数に保管し、セッションで再利用できるようにします。 version パラメータの設定に関する詳細については、『 Virtual Private Cloud API 』の「 バージョン管理 」を参照してください。

api_version="2019-09-30"

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

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

予期しない結果が生じた場合は、--verbose (デバッグ) フラグを curl コマンドの後ろに追加して、詳細なロギング情報を取得してください。 よくあるエラーについて詳しくは、トラブルシューティングを参照してください。

  • GET Regions API を呼び出すと、VPC で使用可能なリージョンが JSON 形式で表示されます。 オブジェクトが少なくとも 1 つ返されるはずです。

    API 要求を行うたびに generation パラメーターを送信して、使用する世代を指定する必要があります。 第 2 世代の仮想サーバー・インスタンスの場合は、generation=2 と指定します。 詳細については、「 Virtual Private Cloud API 」の 「Generation」 を参照してください。

    curl -X GET "$vpc_api_endpoint/v1/regions?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • GET Zones API を呼び出すと、特定のリージョン (us-south など) で VPC に使用できるすべてのゾーンが JSON 形式で表示されます。

    curl -X GET "$vpc_api_endpoint/v1/regions/us-south/zones?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • GET Profiles API を呼び出すと、仮想サーバー・インスタンスに使用できるプロファイルが JSON 形式で表示されます。 オブジェクトが少なくとも 1 つ返されるはずです。

    curl コマンドの後ろに | json_pp を追加すると、読み取り可能な JSON 文字列を取得できます。 json_pp コマンドはJSONプリプロセッサで、ほとんどの Linux ディストリビューションにデフォルトでインストールされている。

    curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • GET Images API を呼び出すと、インスタンスに使用できるイメージが JSON 形式で返されます。 オブジェクトが少なくとも 1 つ返されるはずです。

    curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • GET VPCs API を呼び出すと、アカウントに既に作成されている VPC が JSON 形式で表示されます。

    curl -X GET "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    

API を使用してリソースを作成する方法については、 CLI および API を使用した VPC リソースの作成 を参照してください。