サーバー作成
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": "パスワード"
}
}