API 環境と CLI 環境のセットアップ
API または CLI を使用して IBM Cloud® Virtual Private Cloud (VPC) を作成する前に、環境をセットアップします。
一般的な前提条件
-
VPC にアクセスできるようにアカウントをセットアップします。 アカウントが有料アカウントにアップグレードされていることを確認します。
-
仮想サーバー・インスタンスへの接続に使用するパブリック 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 プラグインをインストールする必要があります。
IBM Cloud CLI は、LinuxONE (s390x プロセッサー・アーキテクチャー) ではサポートされていません。 ただし、サポートされている他のプラットフォームに CLI をインストールし、それを LinuxONE (s390x プロセッサー・アーキテクチャー) 仮想サーバー・インスタンスで使用することはできます。
-
IBM Cloud CLIをインストールします。
-
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 および関連プラグインをダウンロードする必要がある場合は、それらが配置されているパブリック・リポジトリーにアクセスできなければなりません。
-
コア IBM Cloud CLI および VPC インフラストラクチャー・サービス・プラグインが最新バージョンに更新されていることを確認します。
ibmcloud update ibmcloud plugin update vpc-infrastructure
-
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 の Versioning を参照してください。
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: $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: $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: $iam_token"
-
GET Images API を呼び出すと、インスタンスに使用できるイメージが JSON 形式で返されます。 オブジェクトが少なくとも 1 つ返されるはずです。
curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \ -H "Authorization: $iam_token"
-
GET VPCs API を呼び出すと、アカウントに既に作成されている VPC が JSON 形式で表示されます。
curl -X GET "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \ -H "Authorization: $iam_token"
API を使用してリソースを作成する方法については、 CLI および API を使用した VPC リソースの作成 を参照してください。