仮想サーバ作成(CentOS・ポート指定)
ポート(プライベートIPアドレス)を指定して、仮想サーバ(CentOS)を作成し、確認するまでの手順を解説します。
ポート(プライベートIPアドレス)をDHCP取得する場合、「仮想サーバ作成(CentOS・DHCP取得)」を参照してください。
-
以下の設定を行います。
$ VM_NAME=<仮想サーバ名(任意)>
$ FLAVOR_ID=<仮想サーバのスペック(flavorID一覧表示で確認)>
$ VOL_SIZE=30
$ DEVICE_NAME=<ブロックストレージパス(「/dev/vda」 の形式で指定)>
$ IMAGE_REF_ID=839c1db6-738c-4e2b-9a1d-c14977564203<CentOSのイメージID>
$ SOURCE=<ブロックストレージタイプ>
$ DESTINATION=<接続先ボリューム(volume指定)>
$ ISDELETE=<0:仮想サーバ作成時に作成したボリュームを、仮想サーバ削除時に一緒に削除しない、 1:仮想サーバ作成時に作成したボリュームを仮想サーバ削除時に一緒に削除する>
$ KEYNAME=<キーペア名>
$ INSTANCE_MAX=<サーバの最大数>
$ INSTANCE_MIN=<サーバの最小数>
$ PORT_ID=<指定するポートID>
-
次のAPIを実行します。
$ curl -Ss $COMPUTE/v2/$PROJECT_ID/servers -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" \ -H "Content-Type: application/json" -d '{"server": {"name": "'$VM_NAME'", "imageRef": "", "flavorRef": "'$FLAVOR_ID'", "block_device_mapping_v2":[ {"boot_index": "0", "uuid":"'$IMAGE_REF_ID'", "volume_size": "'$VOL_SIZE'","device_name": "'$DEVICE_NAME'", "source_type": "'$SOURCE'", "destination_type": "'$DESTINATION'","delete_on_termination": '$ISDELETE'} ] , "key_name": "'$KEYNAME'", "max_count": '$INSTANCE_MAX',"min_count": '$INSTANCE_MIN', "networks": [{"port": "'$PORT_ID'"}] }}' | jq .
以下のレスポンスが返ります。
{ "server": { "security_groups": [ { "name": "default" } ], "OS-DCF:diskConfig": "MANUAL", "id": "<新規仮想サーバID>", "links": [ { "href": "http://10.3.0.201/v2/<プロジェクトID>/servers/<新規仮想サーバID>", "rel": "self" }, { "href": "http://10.3.0.201/<プロジェクトID>/servers/<新規仮想サーバID>", "rel": "bookmark" } ] } }
-
作成した仮想サーバを確認するため、以下のAPIを実行します。
$ curl -Ss $COMPUTE/v2/$PROJECT_ID/servers/detail -X GET \ -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq '.servers[] | {status: .status, network_name: .addresses | keys, key_name: .key_name, flavor_id: .flavor | .id, vm_id: .id, security_group: .security_groups[] | .name, name: .name, }'
以下のように、設定した仮想サーバ名を含んだリストが出力された場合、作成は完了です。
... { "status": "<仮想サーバのステータス>", "network_name": [ "<接続されているネットワーク名>" ], "key_name": "<キーペア名>", "flavor_id": "<フレーバーID>", "vm_id": "<仮想サーバID>", "security_group": "<セキュリティグループ名>", "name": "<仮想サーバ名>" } ...