###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2018 # # API実行サンプル名: # 02-008_仮想サーバ作成【DHCP取得_スナップショット指定】 # # 内容: # 事前に採取したスナップショットを指定した仮想サーバの作成手順です。 # # 版数:v1.2 # 更新日:2018/1/26 ###################################################################### 手順: ─────────────────────────────────── 項番1.スナップショット確認 項番2.仮想サーバ作成(スナップショット指定) 項番3.仮想サーバ確認 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・ネットワーク ・サブネット ・仮想サーバ ・セキュリティグループ ・キーペア ・スナップショット ─────────────────────────────────── 注意事項: ・仮想サーバのブロックストレージサイズを作成時に指定しない場合は、 採取元のスナップショットのブロックストレージサイズとなります。 ・採取したスナップショットを指定して仮想サーバを作成する場合は、 ストレージタイプの指定はできません。採取元のスナップショットの ストレージタイプで作成されます。 ・スナップショットが採取されているシステムストレージは、仮想サーバ 削除と同時に削除されません。仮想サーバと同時にシステムストレージを 削除したい場合は、採取したスナップショットを削除した後に、仮想 サーバを削除してください。 ・スナップショットの作成方法についてはAPI実行サンプル「スナップ ショット作成」を参照してください。 項番1.スナップショット確認 あらかじめ採取したスナップショットの状態を確認します。 環境定義コマンド例: ====================================================================== # SNAPSHOT_ID=<採取したスナップショットID> SNAPSHOT_ID=5840872d-aa69-4153-8443-5117208e6s29 API実行コマンド例: ====================================================================== curl -Ss $BLOCKSTORAGE/v2/$PROJECT_ID/snapshots/$SNAPSHOT_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "snapshot": { "availability_zone": "jp-west-2a", "name": "TEST_SV_01_SNAPSHOT_01", "id": "5840872d-aa69-4153-8443-5117208e6s29", "status": "available", "os-extended-snapshot-attributes:progress": "100%", "description": "TEST_Server_01_SNAPSHOT", "created_at": "2017-10-25T07:06:52.000000", "metadata": {}, "volume_id": "5a65453d-59be-45ab-a835-59272aedetf3", "os-extended-snapshot-attributes:project_id": "<プロジェクトID>", "size": 30 } } ====================================================================== 項番2.仮想サーバ作成(スナップショット指定) 採取したスナップショットから仮想サーバを作成します。 環境定義コマンド例: ====================================================================== # SERVER_NAME=<作成する仮想サーバ名> SERVER_NAME=TEST_SERVER_01 # SNAPSHOT_REF_ID=<採取したスナップショットID> SNAPSHOT_REF_ID=5840872d-aa69-4153-8443-5117208e6s29 # FLAVOR_ID=<フレーバーID(フレーバーIDはAPI実行サンプル「リソース # 確認用API一覧」を参照してください)> FLAVOR_ID=1101 # VOLUME_SIZE=<ブロックストレージサイズ(GB)(CentOSは「30」以上を # 設定)> VOLUME_SIZE=30 # DEVICE_NAME=<ブロックストレージパス(「/dev/vda」 の形式で指定)> DEVICE_NAME=/dev/vda # SOURCE=<ブロックストレージのソースタイプ(「snapshot」を指定)> SOURCE=snapshot # DESTINATION=<接続先ボリューム(volume指定)> DESTINATION=volume # ISDELETE=<(0:仮想サーバと同時に作成されるシステムストレージを、 # 仮想サーバ削除時に同時に削除しない), # (1:仮想サーバと同時に作成されるシステムストレージを、 # 仮想サーバ削除時に同時に削除する)> ISDELETE=1 # KEY_NAME=<仮想サーバへのログインで利用するキーペア名> KEY_NAME=TEST_KEY_01 # INSTANCE_MAX=<仮想サーバの最大数> INSTANCE_MAX=1 # INSTANCE_MIN=<仮想サーバの最小数> INSTANCE_MIN=1 # NETWORK_ID=<あらかじめ作成したネットワークID> NETWORK_ID=d8c49da6-0162-4014-972b-084e3e6bse46 # SG_NAME=<あらかじめ作成したセキュリティグループ名> SG_NAME=TEST_SG_01 # AZ=<仮想サーバを作成するアベイラビリティゾーン> AZ=jp-west-2a 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'", "availability_zone": "'$AZ'", "imageRef": "", "flavorRef": "'$FLAVOR_ID'", "block_device_mapping_v2":[ {"boot_index": "0", "uuid":"'$SNAPSHOT_REF_ID'", "volume_size": "'$VOLUME_SIZE'", "device_name": "'$DEVICE_NAME'", "source_type": "'$SOURCE'", "destination_type": "'$DESTINATION'", "delete_on_termination": '$ISDELETE'} ] , "key_name": "'$KEY_NAME'", "max_count": '$INSTANCE_MAX', "min_count": '$INSTANCE_MIN', "networks": [{"uuid": "'$NETWORK_ID'"}], "security_groups": [{"name": "'$SG_NAME'"}] }}' | jq . レスポンス例: ====================================================================== { "server": { "links": [ { "rel": "self", "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/69e6f562-43d2-4f4e-9f70-e389d59a0816" }, { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/servers/69e6f562-43d2-4f4e-9f70-e389d59a0816" } ], "id": "69e6f562-43d2-4f4e-9f70-e389d59a0816", "OS-DCF:diskConfig": "MANUAL", "security_groups": [ { "name": "TEST_SG_01" } ] } } ====================================================================== 項番3.仮想サーバ確認 仮想サーバが作成されたことを確認します。 環境定義コマンド例: ====================================================================== # SERVER_ID=<作成した仮想サーバID> SERVER_ID=69e6f562-43d2-4f4e-9f70-e389d59a0816 API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "server": { "metadata": {}, "config_drive": "", "OS-EXT-STS:power_state": 1, "progress": 0, "accessIPv6": "", "accessIPv4": "", "os-extended-volumes:volumes_attached": [ { "id": "65eb7e7f-2682-4ffe-b1a2-2e7491ef1093" } ], "OS-DCF:diskConfig": "MANUAL", "tenant_id": "<プロジェクトID>", "created": "2017-10-25T07:24:18Z", "name": "TEST_SERVER_01", "user_id": "<ユーザID>", "OS-EXT-AZ:availability_zone": "jp-west-2a", "OS-SRV-USG:terminated_at": null, "image": "", "key_name": "TEST_KEY_01", "links": [ { "rel": "self", "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/69e6f562-43d2-4f4e-9f70-e389d59a0816" }, { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/servers/69e6f562-43d2-4f4e-9f70-e389d59a0816" } ], "addresses": { "TEST_Network_01": [ { "OS-EXT-IPS:type": "fixed", "addr": "192.168.211.26", "version": 4, "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:3e:eb:dc" } ] }, "OS-EXT-SRV-ATTR:host": "jp3a01-pgy036-00", "hostId": "ae209f54adbe63e2dbfb13dfb544165db3c1bcd0625ffeb5c452839j", "updated": "2017-10-25T07:24:36Z", "status": "ACTIVE", "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-00019764", "OS-SRV-USG:launched_at": "2017-10-25T07:24:36.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": "jp3a01-pgy036-00", "flavor": { "links": [ { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/flavors/1101" } ], "id": "1101" }, "id": "69e6f562-43d2-4f4e-9f70-e389d59a0816", "security_groups": [ { "name": "TEST_SG_01" } ] } } ====================================================================== 変更履歴: ─────────────────────────────────── v1.1版: ・ 「内容」:説明修正 v1.2版: ・ 「項番2.仮想サーバ作成(スナップショット指定)」:説明修正 ─────────────────────────────────── 以上