Create server (1)

Method URI Description
POST /v2/{tenant_id}/servers サーバを1台作成します。

Normal response codes: 202

注意:
  • 「/etc/cloud/cloud.cfg」に以下の設定がない場合は、「/etc/cloud/cloud.cfg.d/datasource.cfg」を作成して追加してください。すでに設定済の場合は、対応する必要はありません。

    
    datasource_list: ['OpenStack']
                 
  • イメージを登録(インポート)したユーザーのパスワードを変更すると、イメージを使用できなくなります。その場合は、運用者に以下のどちらかを伝えて、イメージの変更を依頼してください。
    • イメージの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."

    インスタンスの再作成は、以下の手順を実施してください。

    1. ボリューム"status"の確認

      <ボリュームのuuid>で示す"status"が"available"に変更されることを確認します。

      Show volume information (1)」を参照し、ボリュームの状態を確認してください。

    2. インスタンスの削除

      エラーとなったインスタンスだけを削除します。

      Delete server」を参照し、削除してください。。

      インスタンスだけ削除され、ボリュームが存在していることを確認します。

      1. インスタンスが削除されていることを確認する

        Show server information」を参照し、インスタンスが削除されたことを確認します。

      2. ボリュームの存在を確認する

         「Show volume information (1)」を参照し、ボリュームの存在を確認します。

    3. インスタンスの作成

      1.のボリュームを指定してインスタンスを作成します。

      "block_device_mapping_v2"の"source_type"に"volume"、"uuid"に再利用する<ボリュームのuuid>を指定して、インスタンスを作成します。

Request

下表は、サーバ作成リクエストのURIパラメーターの一覧です。

Name Type Description
{tenant_id} UUID プロジェクトID

下表は、仮想サーバ作成リクエストのボディ部のパラメーターの一覧です。

Name Type Description
security_group array

(Optional)

1つ以上のsecurity_groupオブジェクト。name属性にはセキュリティグループの名前を指定してください。この属性を省略した場合、サーバはデフォルトのセキュリティグループに作成されます。

SecurityGroupには、以下のIPアドレスおよびポート番号に対するTCP通信を許可したものを設定してください。

IPアドレス: 169.254.169.254

ポート番号: 80

TCP通信が許可されていないと、インスタンス作成時のホスト名(コンピュータ名)や管理者パスワードの設定が実施されない場合があります。

user_data string

(Optional)

起動時に使用する構成情報またはスクリプト。Base64でエンコードされている必要があります。 encoded.

サポートしている形式は、主に下記になります。

  • 業務OSがLinuxの場合
    • シェルスクリプト(#!で開始するもの)
  • 業務OSがWindowsの場合
    • PowerShell(#ps1_sysnative または #ps1_x86で開始するもの)
    • Windows batch(rem cmdで開始するもの)

業務OSがLinuxの場合、スクリプトのほかにcloud-config形式の指定もできますが、検証未完のため、スクリプトの指定を推奨します。

availability_zone string

(Optional)

サーバを起動するアベイラビリティゾーン
server object サーバ
imageRef String 仮想サーバに使用するイメージの参照先です。

イメージIDまたはURLを指定してください。

flavorRef String 仮想サーバに使用するフレーバーの参照先です。

フレーバーIDまたはURLを指定してください。

key_name string

(Optional)

指定した名前のキーペアの公開鍵をサーバに割り当てます。

networks array

(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文字以上を指定した場合、以下のようになります。

  • 業務OSがWindowsの場合

    コンピュータ名はWindowsがデフォルトで設定する名前となります。

  • 業務OSがLinuxの場合

    ホスト名は"host- < eth0 の Fixed IP address >"となります。

なお、コンピュータ名/ホスト名に設定する文字列は、以下のように変更され、設定されます。
  • 空白(" ")とアンダースコア("_")を、ハイフン("-")に置換
  • アルファベットの大文字を、小文字に置換
  • ピリオド(".")とハイフン("-")以外の記号を削除
  • 先頭、末尾のピリオド(".")またはハイフン("-")からなる文字列を削除
  • Windowsにおいては、文字列の先頭、末尾以外にピリオド(".")が存在する場合、ピリオド(".")直前までの文字列を採用
metadata object

(Optional)

メタデータキーと値のペア。メタデータキーと値の最大サイズはそれぞれ、255バイトです。
  • 業務OSがWindowsの場合

    インスタンスのパスワードを指定する場合、キーに"admin_pass"を指定してください。

    指定したパスワードをcloudbase-initで指定したユーザーに対して設定します。

    cloudbase-initに指定したユーザーについては、イメージ提供元に確認してください。

    指定例: "metadata": {"admin_pass": "<インスタンスに設定するパスワード>"}

  • オートフェイルオーバー機能を使用する場合

    "fcx.autofailover":"true"を指定してください。

    なお、以下の条件を満たすインスタンスは、運用者による復旧対象外となります。利用者にて、インスタンスの再作成、または、インスタンスを削除してください。

    • "fcx.autofailover": "false"が設定されている、または、
    • オートスケール対象となっている、または、
    • インスタンスのstatusが、ERROR
block_device_mapping_v2 array 他のパラメーターが指定された場合にボリュームからサーバを起動できるようにします。
device_name string

仮想サーバの起動に使用するボリュームのデバイスのパスを記述します。

/dev/vd* の形式で指定してください(/dev/vdを含め255文字以内)。

*部分は以下のように指定できます。

  • 小文字の半角英字だけを指定する場合は、以下のように指定してください。

    "/dev/vd" + 1文字以上の小文字の半角英字

    例 : /dev/vda

  • 小文字の半角英字と半角数字を指定する場合は、以下のように指定してください。

    "/dev/vd" + 1文字以上の小文字の半角英字 + 1文字以上の半角数字

    例 : /dev/vda0、/dev/vdb1 等

注: 複数のボリュームを割り当てたインスタンスを作成する場合、デバイス名の"/dev/vd" + 1文字以上の小文字の半角英字部分が重複しないようにしてください。
警告:

特に理由がない限りは、システムボリュームのデバイス名を/dev/vdaとしてください。

デバイス名に指定された文字の優先順序は、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"
	}
}