###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2018 # # API実行サンプル名: # 02-013_仮想サーバ作成【ポート指定_WindowsOS】 # # 内容: # 事前に作成したポートを指定し、WindowsOSの仮想サーバを作成する # 手順です。 # # 版数:v1.1 # 更新日:2018/1/26 ###################################################################### 手順: ─────────────────────────────────── 項番1.ポート確認 項番2.仮想サーバ作成(ポート指定) 項番3.仮想サーバ確認 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・ネットワーク ・サブネット ・セキュリティグループ ・ポート ─────────────────────────────────── 注意事項: ・ポートの作成方法については、API実行サンプル「ポート作成」を参照して ください。 項番1.ポート確認 事前に作成したポートの以下のパラメータでポートが使用されていない ことを確認します。 ・"device_owner": "" ・"status": "DOWN" 環境定義コマンド例: ====================================================================== # PORT_ID=<事前に作成したポートID> PORT_ID=d8ac7aa7-526b-4239-845f-7fc386e720b6 API実行コマンド例: ====================================================================== curl -Ss $NETWORK/v2.0/ports/$PORT_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" | jq . レスポンス例: ====================================================================== { "port": { "status": "DOWN", "name": "TEST_PORT_1", "allowed_address_pairs": [], "admin_state_up": true, "network_id": "d7e7aff4-dd3d-4b68-bfc0-190ef3fa2289", "tenant_id": "<プロジェクトID>", "extra_dhcp_opts": [], "binding:vnic_type": "normal", "device_owner": "", "mac_address": "fa:16:3e:3f:5f:fb", "fixed_ips": [ { "subnet_id": "d96fc4b0-279b-4f37-9a48-1d86a90c29ae", "ip_address": "192.168.50.200" } ], "id": "d8ac7aa7-526b-4239-845f-7fc386e720b6", "security_groups": [ "832ce03a-73f2-455a-a01e-dff8ecb4aabd" ], "device_id": "", "availability_zone": "jp-west-2a" } } ====================================================================== 項番2.仮想サーバ作成(ポート指定) ポートを指定した、仮想サーバを作成します。 環境定義コマンド例: ====================================================================== # SERVER_NAME=<作成する仮想サーバ名> SERVER_NAME=Test_Server01 # IMAGE_REF_ID= IMAGE_REF_ID=0cbe4ea8-bae1-4ffc-a932-2508f51bc8f4 # FLAVOR_ID=<フレーバーID(フレーバーIDはAPI実行サンプル「リソース # 確認用API一覧」を参照してください)> FLAVOR_ID=1101 # VOLUME_SIZE=<ブロックストレージサイズ(GB)(WindowsOSは「80」以上を # 設定)> VOLUME_SIZE=80 # SOURCE=<ブロックストレージのソースタイプ(「image」を指定)> SOURCE=image # DESTINATION=<接続先ボリューム(volume指定)> DESTINATION=volume # ISDELETE=<(0:仮想サーバと同時に作成されるシステムストレージを、 # 仮想サーバ削除時に同時に削除しない), # (1:仮想サーバと同時に作成されるシステムストレージを、 # 仮想サーバ削除時に同時に削除する)> ISDELETE=1 # INSTANCE_MAX=<仮想サーバの最大数> INSTANCE_MAX=1 # INSTANCE_MIN=<仮想サーバの最小数> INSTANCE_MIN=1 # PORT_ID=<事前に作成したポートID> PORT_ID=d8ac7aa7-526b-4239-845f-7fc386e720b6 # ADMIN_PASS=<仮想サーバログイン時のパスワード(任意)> ADMIN_PASS=qwerty1234 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": "'$SERVER_NAME'", "imageRef": "", "flavorRef": "'$FLAVOR_ID'", "block_device_mapping_v2":[ {"boot_index": "0", "uuid": "'$IMAGE_REF_ID'", "volume_size": "'$VOLUME_SIZE'", "source_type": "'$SOURCE'", "destination_type": "'$DESTINATION'", "delete_on_termination": "'$ISDELETE'"} ] , "max_count": "'$INSTANCE_MAX'", "min_count": "'$INSTANCE_MIN'", "networks": [{"port": "'$PORT_ID'"}], "metadata":{"admin_pass": "'$ADMIN_PASS'"} }}' | jq . レスポンス例: ====================================================================== { "server": { "security_groups": [ { "name": "default" } ], "OS-DCF:diskConfig": "MANUAL", "id": "f1be99a8-cc43-4c40-a7e2-14cca5a15138", "links": [ { "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/f1be99a8-cc43-4c40-a7e2-14cca5a15138", "rel": "self" }, { "href": "http://10.27.0.201/<プロジェクトID>/servers/f1be99a8-cc43-4c40-a7e2-14cca5a15138", "rel": "bookmark" } ] } } ====================================================================== 項番3.仮想サーバ確認 指定したポートがアタッチされた仮想サーバが作成されたことを確認します。 環境定義コマンド例: ====================================================================== # SERVER_ID=<作成した仮想サーバID> SERVER_ID=f1be99a8-cc43-4c40-a7e2-14cca5a15138 API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" | jq . レスポンス例: ====================================================================== { "server": { "status": "ACTIVE", "updated": "2017-12-07T00:31:40Z", "hostId": "e5a57d5118cb45bbe3a07947fe6ed20a71def4448ee0f5ad86faee88", "OS-EXT-SRV-ATTR:host": "jp3a01-pgy060-00", "addresses": { "TEST_NW_001": [ { "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:3f:5f:fb", "version": 4, "addr": "192.168.50.200", "OS-EXT-IPS:type": "fixed" } ] }, "links": [ { "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/f1be99a8-cc43-4c40-a7e2-14cca5a15138", "rel": "self" }, { "href": "http://10.27.0.201/<プロジェクトID>/servers/f1be99a8-cc43-4c40-a7e2-14cca5a15138", "rel": "bookmark" } ], "key_name": null, "image": "", "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-0001ced8", "OS-SRV-USG:launched_at": "2017-12-07T00:31:40.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": "jp3a01-pgy060-00", "flavor": { "id": "1101", "links": [ { "href": "http://10.27.0.201/<プロジェクトID>/flavors/1101", "rel": "bookmark" } ] }, "id": "f1be99a8-cc43-4c40-a7e2-14cca5a15138", "security_groups": [ { "name": "TEST_SG_001" } ], "OS-SRV-USG:terminated_at": null, "OS-EXT-AZ:availability_zone": "jp-west-2a", "user_id": "<ユーザID>", "name": "Test_Server01", "created": "2017-12-07T00:31:02Z", "tenant_id": "<プロジェクトID>", "OS-DCF:diskConfig": "MANUAL", "os-extended-volumes:volumes_attached": [ { "id": "f3778752-4d63-49b4-b821-c0267650ce8a" } ], "accessIPv4": "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive": "", "metadata": { "admin_pass": "qwerty1234" } } } ====================================================================== 変更履歴: ─────────────────────────────────── v1.1版: ・項番全体:項番構成の見直し、説明修正 ─────────────────────────────────── 以上