Create server (1)
| Method | URI | Description | 
|---|---|---|
| POST | /v2/{tenant_id}/servers | サーバを1台作成します。 | 
Normal response codes: 202
- Linuxのイメージで作成したインスタンスを起動または再起動した場合、sshdの設定が初期化され、起動後にインスタンスへログインできなくなる場合があります。「Reboot server」の注意事項を参照し、必要に応じて、作業を実施してください。
 - イメージを登録(インポート)したユーザーのパスワードを変更すると、イメージを使用できなくなります。その場合は、運用者に以下のどちらかを伝えて、イメージの変更を依頼してください。
           
- イメージのuuidおよびユーザーの認証情報変更後のイメージのlocation情報
 - イメージのuuidおよびユーザーの認証情報変更後に登録(インポート)したイメージのuuid
 
 - インスタンスを作成した際に、"status"が "ERROR"および"fault"の"message"に以下のメッセージが表示された場合、記載する手順でインスタンスを再作成してください。
"Block Device Mapping is Invalid: Volume <ボリュームのuuid> did not finish being
created even after we waited <経過時間(秒)> seconds or <ボリュームのstatus確認回数> attempts."
以下にインスタンスを再作成する手順を記載します。
- メッセージの<ボリュームのuuid>で示すボリュームの"status"が"available"に変わるのを待ちます。
「Show volume information (1)」を使用してボリュームの状態を確認します。
 - エラーとなったインスタンスを削除します。
「Delete server」を使用してインスタンスを削除します。以下の手順でインスタンスのみ削除されたことを確認します。
- インスタンスが削除されたことを確認します。
「Show server information」を使用してインスンスが削除されたことを確認します。
 - インスタンスを削除しても、1) のボリュームが存在することを確認します。
「Show volume information (1)」を使用してボリュームが存在することを確認します。
 
 - インスタンスが削除されたことを確認します。
 - 1.のボリュームを指定してインスタンスを作成します。
"block_device_mapping_v2"の"source_type"に"volume"、"uuid"に再利用する<ボリュームのuuid>を指定して、インスタンスを作成します。
 
 - メッセージの<ボリュームのuuid>で示すボリュームの"status"が"available"に変わるのを待ちます。
 
Request
下表は、サーバ作成リクエストのURIパラメーターの一覧です。
| Name | Type | Description | 
|---|---|---|
| {tenant_id} | UUID | プロジェクトID | 
下表は、仮想サーバ作成リクエストのボディ部のパラメーターの一覧です。
| Name | Type | Description | 
|---|---|---|
| security_group | string  (Optional)  | 
              1つ以上のsecurity_groupオブジェクト。name属性にはセキュリティグループの名前を指定してください。この属性を省略した場合、サーバはデフォルトのセキュリティグループに作成されます。 SecurityGroupには、以下のIPアドレスおよびポート番号に対するTCP通信を許可したものを設定してください。 IPアドレス: 169.254.169.254 ポート番号: 80 TCP通信が許可されていないと、インスタンス作成時のホスト名(コンピュータ名)や管理者パスワードの設定が実施されない場合があります。  | 
            
| user_data | string  (Optional)  | 
              起動時に使用する構成情報またはスクリプト。Base64でエンコードされている必要があります。
                encoded.  サポートしている形式は、主に下記になります。 
 業務OSがLinuxの場合、スクリプトのほかにcloud-config形式の指定もできますが、検証未完のため、スクリプトの指定を推奨します。  | 
            
| availability_zone | string  (Optional)  | 
              サーバを起動するアベイラビリティゾーン | 
| server | ServerForCreate | サーバ | 
| imageRef | String | 仮想サーバに使用するイメージの参照先です。 イメージIDまたはURLを指定してください。  | 
            
| flavorRef | String | 仮想サーバに使用するフレーバーの参照先です。 フレーバーIDまたはURLを指定してください。  | 
            
| key_name | string  (Optional)  | 
              
                 指定した名前のキーペアの公開鍵をサーバに割り当てます。  | 
            
| networks | string  (Optional)  | 
              networksオブジェクト。デフォルトでは、プロジェクトが所属するネットワークすべてが仮想サーバに割り当てられます。必要であれば、1つ以上のNICをサーバに作成することもできます。ネットワークのNICを仮想サーバに割り当てるには、networksオブジェクトのuuid属性にネットワークのUUIDを指定します。
                   既存ポートのNICを仮想サーバに割り当てるには、networksオブジェクトのポート属性にポートIDを指定します。 サーバ上の複数のNICを指定できます。 ネットワークは必ず指定してください。 仮想サーバに対して、以下の情報を設定するために、仮想サーバを接続するネットワークには仮想ルータが接続されている必要があります。 
  | 
            
| uuid | string  (Optional)  | 
              ネットワークのNICを仮想サーバに割り当てるには、networksオブジェクトのuuid属性にネットワークIDを指定します。port属性を省略した場合は必須です。
                   ネットワークに複数のサブネットを含む場合、任意のサブネットからIPアドレスが割り当てられます。特定のサブネットのIPアドレスを割当てる場合は、事前にポートを作成し、そのポートのuuidをportで指定してください。  | 
            
| port | string  (Optional)  | 
              既存ポートのNICを仮想サーバに割り当てるには、networksオブジェクトのポート属性にポートIDを指定します。uuid属性を省略した場合は必須です。 | 
| fixed_ip | string  (Optional)  | 
              NICに設定する固定IPv4アドレス。 | 
| name | string | 仮想サーバ名 本情報は、コンピュータ名/ホスト名としても使用されます。 64文字以上を指定した場合、以下のようになります。 
 なお、コンピュータ名/ホスト名に設定する文字列は、以下のように変更され、設定されます。  
              
  | 
            
| metadata | string  (Optional)  | 
              メタデータキーと値のペア。メタデータキーと値の最大サイズはそれぞれ、255バイトです。 
  | 
            
| block_device_mapping_v2 | string | 他のパラメーターが指定された場合にボリュームからサーバを起動できるようにします。 | 
| device_name | string | 仮想サーバの起動に使用するボリュームのデバイスのパスを記述します。
                /dev/vdx の形式で指定してください。/dev/vdまでは固定で、xはデバイス名として有効なアルファベット1文字以上(小文字のみ)を指定します。 注: システムボリュームのデバイス名に数字を入れる場合は以下の形式で指定してください。
                  
                "/dev/vd" + アルファベット1文字以上(小文字のみ) + 数字(数字と数字の間に英字が入らないこと) 例 : /dev/vda0 、 /dev/vda1 等 複数のボリュームを割当てたインスタンスを作成する場合、起動ボリュームには、全てのボリュームのデバイス名のうち、優先度が最も高い文字を指定してください。 優先度は、a > b > c > ...の順です。  | 
            
| source_type | string | ボリュームのボリュームソース種別を記述します。"snapshot"、"volume"、または "image"を選択できます。 | 
| destination_type | string | 接続先("volume")を指定します。 | 
| delete_on_termination | bool  (Optional)  | 
              インスタンス作成時に作成したボリュームを、インスタンス削除時に削除するかどうかを指定します。
                   Trueを指定した場合、インスタンス作成時に作成したボリュームを、インスタンス削除時にボリュームも削除します。 Falseを指定した場合、インスタンス作成時に作成したボリュームを、インスタンス削除時にボリュームを削除しません。 未指定時は、False(削除しない)となります。 なお、snapshotが採取されているボリュームは、Trueを指定しても削除されません。  | 
            
| boot_index | String | デバイスの起動順序を指定します。0から連続した値を指定します。起動ディスクは、0を指定します。 | 
| config_drive | String  (Optional)  | 
              falseのみ指定できます。 | 
| uuid | uuid | source_typeに指定したリソースのUUIDを指定します。 | 
| volume_size | String | ボリュームサイズをGB単位で指定します。  source_typeにimageを指定した場合は、必ず指定してください。値には、使用するイメージのmin_diskパラメーター以上の値を指定してください。なお、使用するイメージのmin_diskパラメーターが無し、または、0の場合、イメージの提供元に最小サイズを確認し、指定してください。 source_typeにvolumeを指定した場合は、値を指定しても無視されます。 source_typeにsnapshotを指定した場合に、省略すると、スナップショットの採取元のボリュームのサイズとなります。  | 
            
| volume_type | string  (Optional)  | 
              ボリュームタイプ名を指定します。
                   source_typeにimageを指定した場合にだけ、指定されたボリュームタイプでボリュームが作成されます。省略した場合は M1 となります。 source_typeにvolumeを指定した場合は、ボリュームタイプは変更できないため、値を指定しても無視されます。 source_typeにsnapshotを指定した場合は、スナップショット元のボリュームのボリュームタイプで作成されます。値を指定しても無視されます。  | 
            
Example. Create server: JSON request
{
	"server": {
		"name": "server-test-1",
		"imageRef": "b5660a6e-4b46-4be3-9707-6b47221b454f",
		"flavorRef": "2",
		"key_name": "keypair1",
		"networks": [
			{
				"uuid": "d32019d3-bc6e-4319-9c1d-6722fc136a22"
			},
			{
				"port": "2f2eab14-5c2f-4111-871f-f752c73ca3bf"
			}
		],
		"security_groups": [
			{
					"name": "default"
			},
			{
				"name": "another-secgroup-name"
			}
		],
		"block_device_mapping_v2": [
			{
				"device_name": "/dev/vda",
				"source_type": "image",
				"destination_type": "volume",
				"volume_size": "20",
				"boot_index": "0",
				"uuid": "6cbf9710-87e3-4a36-8116-9b3396882621",
				"delete_on_termination": "True"
			},
			{
				"device_name": "/dev/vdb",
				"source_type": "volume",
				"destination_type": "volume",
				"boot_index": "1",
				"uuid": "0a273d8d-c5e1-4886-bd93-1d1779283fa3",
				"delete_on_termination": "True"
			},
			{
				"device_name": "/dev/vdc",
				"source_type": "snapshot",
				"destination_type": "volume",
				"volume_size": "30",
				"boot_index": "2",
				"uuid": "492eac4d-6c12-4828-b0ec-75d3bff0bd4b",
				"delete_on_termination": "True"
			}
		]
	}
}
     
     
   Response
Example. Create server: JSON response
{
	"server": {
		"security_groups": [
			{
				"name": "default"
			}
		],
			"OS-DCF:diskConfig": "MANUAL",
			"id": "c6d04159-9bfc-4ab8-823d-0d5ca2abe152",
			"links": [
				{
					"href": "http://166.78.46.130:8774/v2/4fd44f30292945e481c7b8a0c8908869/servers/c6d04159-9bfc-4ab8-823d-0d5ca2abe152",
					"rel": "self"
				},
				{
				"href": "http://166.78.46.130:8774/4fd44f30292945e481c7b8a0c8908869/servers/c6d04159-9bfc-4ab8-823d-0d5ca2abe152",
				"rel": "bookmark"
			}
		],
		"adminPass": "aabbccddeeff"
	}
}