サーバー作成
Description
仮想サーバーを作成します。
・IPアドレスを購入していない場合ははじめにコントロールパネルからIPアドレスの購入が必要です。
・ブート用ボリュームをあらかじめ作成する必要があります。
・指定できるポート数はローカルネットワークは2つ、それ以外はグループ毎に1つまでです。
[サーバーのrootパスワードについて]
サーバーのroot/Administratorパスワードは"adminPass"パラメータを利用します。adminPassはOptionalですが、指定するimageによって動作が変わります。
・Publicイメージを指定した場合、パスワードが入力されていないとランダムなパスワードが設定されます。
・Privateイメージ(自身の仮想サーバーの保存イメージ)を指定した場合、パスワードが入力されなかったら元イメージのパスワードが設定されます。(※レスポンスのadminPassには""と表示されます)
・文字種:半角英大文字と、半角英小文字と、半角数字または記号の組み合わせ以外はエラー
・文字数:9文字以上~70文字以内
・使用可能な記号 : ! # $ % & ? " ' = + - _ { } [ ] ^ ~ : ; ( ) . , / | \ * @
Request URL
Compute API v2.0 POST /v2/{tenant_id}/servers
Request Json
# 最低指定時(port指定) { "server": { "name": "ホスト名", "flavorRef":"フレーバーID", "adminPass":"パスワード", "networks": [ { "port":"ポートID" } ], "block_device_mapping": [ { "volume_id":"ボリュームID(ブートディスク)" } ] } } # 最低指定時(UUID[NetworkID]指定) { "server": { "name":"ホスト名", "flavorRef":"フレーバーID", "adminPass":"パスワード", "networks": [ { "uuid":"ネットワークID" } ], "block_device_mapping": [ { "volume_id":"ボリュームID(ブートディスク)" } ] } } # Port複数指定時 { "server": { "name": "ホスト名", "flavorRef":"フレーバーID", "adminPass":"パスワード", "networks": [ { "port":"ポートID" }, { "port":"ポートID" }, { "port":"ポートID" } ], "block_device_mapping": [ { "volume_id":"ボリュームID(ブートディスク)" } ] } } # SSHキー指定時 { "server": { "name":"ホスト名", "flavorRef":"フレーバーID", "adminPass":"パスワード", "networks": [ { "port":"ポートID" } ], "block_device_mapping": [ { "volume_id":"ボリュームID(ブートディスク)" } ], "key_name":"SSHキー名" } } # metadata指定時 { "server": { "name":"ホスト名", "flavorRef":"フレーバーID", "adminPass":"パスワード", "networks": [ { "port":"ポートID" } ], "block_device_mapping": [ { "volume_id":"ボリュームID(ブートディスク)" } ], "metadata": { "instance_name_tag":"ネームタグ" } } } # 追加ディスク指定時 { "server": { "name":"ホスト名", "flavorRef":"フレーバーID", "adminPass":"パスワード", "networks": [ { "port":"ポートID" } ], "block_device_mapping": [ { "volume_id":"ボリュームID(ブートディスク)" }, { "volume_id":"ボリュームID(追加ディスク)" } ] } }
Request Parameters
Parameter | Value | Style | Description |
---|---|---|---|
X-Auth-Token | Userトークン | header | トークン発行 にて払い出されたID |
tenant_id | テナントID | URI | API情報を確認する にてご確認ください。 |
name | ホスト名 | plain | OS内のホスト名(英数字15文字以下、「-」のみ利用可能) |
flavorRef | フレーバーID | plain | 対象サーバータイプのUUIDを指定する。サーバータイプ一覧取得にてフレーバーIDをご確認ください。 |
networks | ネットワークオブジェクト | plain | keyに"port"を、valueにアタッチしたいポートIDを指定、またはkeyに"uuid"を、valueにサブネットを持つネットワークIDを指定する(RequestJson参照) ポート一覧取得にてポートIDを、ネットワーク一覧取得にてネットワークIDをご確認ください。 |
block_device_mapping | ブロックストレージ | Array | deviceは1~2つマッピングできる。 |
volume_id | ボリュームID | plan | アタッチしたいボリュームのIDを指定する。ボリューム一覧取得にてボリュームIDをご確認ください。 |
adminPass (Optional) | パスワード | plan | サーバーのroot/Administratorのパスワード(詳細は「サーバーのroot/Administratorパスワードについて」を参照) |
key_name (Optional) | SSHキー名 | plan | SSHキーを利用する場合に指定する。キーペア一覧取得にてSSHキー名をご確認ください。 |
metadata (Optional) | plan | ||
instance_name_tag (Optional) | ネームタグ | plan | ネームタグを入れる際に利用する(Default:server.name)(文字種:半角英数字、「 - 」、「 _ 」のみを許可。文字数:255文字以下) |
availability_zone (Optional) | ホストサーバー名 | plan | 作成先のホストサーバーを指定する際に使用する。(自分のホストサーバーを所有している場合のみ使用可能) |
Response
-
Normal response codes
202
Example
-
Request
curl -i -X POST \ -H "Accept: application/json" \ -H "X-Auth-Token: トークンID" \ -d '{ "server": { "name": "ホスト名", "flavorRef": "フレーバーID", "adminPass": "パスワード", "networks": [ { "uuid": "ネットワークID" } ], "block_device_mapping": [ { "volume_id": "ボリュームID(ブートディスク)" } ] } }' \ https://compute.jpt1.cloud.z.com/v2/テナントID/servers
-
Response
HTTP/1.1 202 Accepted Date: Fri, 22 Jul 2016 06:02:41 GMT Server: Apache Content-Length: 446 Content-Type: application/json { "server": { "security_groups": [ { "name": "セキュリティグループ名" } ], "OS-DCF:diskConfig": "MANUAL", "id": "サーバーID", "links": [ { "href": "https://compute.jpt1.cloud.z.com/v2/テナントID/servers/サーバーID", "rel": "self" }, { "href": "https://compute.jpt1.cloud.z.com/テナントID/servers/サーバーID", "rel": "bookmark" } ], "adminPass": "パスワード" } }