###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2018 # # API実行サンプル名: # 02-005_仮想サーバイメージ作成 # # 内容: # プライベートイメージを作成する手順です。 # # 版数:v1.0 # 更新日:2017/09/01 ###################################################################### 手順: ─────────────────────────────────── 項番1.仮想サーバイメージ作成 項番2.システムストレージの確認 項番3.イメージの確認 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・仮想サーバ ─────────────────────────────────── 注意事項: ・仮想サーバイメージを作成前に機能説明書「仮想サーバイメージの管理」 の「警告」を参照し、仮想サーバイメージ作成前準備を実施してください。 ・仮想サーバイメージ作成時は、仮想サーバを停止し、イメージが作成完了 するまで仮想サーバを起動しないでください。 仮想サーバ停止の手順については、API実行サンプル「02-004_仮想サーバ の起動と停止」を参照してください。 ・仮想サーバに増設ストレージがアタッチされている場合、サービス ポータル等でシステムストレージのIDであることを確認の上、イメージ 作成の作業を実施してください。 項番1.仮想サーバイメージ作成 仮想サーバのイメージを作成します。 環境定義コマンド例: ====================================================================== # IMAGE_NAME=<作成するイメージ名> IMAGE_NAME=TEST_IMAGE_001 # VOLUME_ID=<イメージを作成する仮想サーバのシステムストレージID> VOLUME_ID=9bd9se80-8846-45bf-99b6-e5eeeab2259n # CONTAINER_FORMAT=<作成するイメージのコンテナ形式(「bare」を指定)> CONTAINER_FORMAT=bare # DISK_FORMAT=<作成するイメージのディスク形式(「raw」を指定)> DISK_FORMAT=raw # FORCE=<仮想サーバに紐付いたストレージの場合「true」を指定> FORCE=true API実行コマンド例: ====================================================================== curl -Ss $BLOCKSTORAGE/v2/$PROJECT_ID/volumes/$VOLUME_ID/action -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"os-volume_upload_image": {"container_format":"'$CONTAINER_FORMAT'","disk_format":"'$DISK_FORMAT'","image_name":"'$IMAGE_NAME'","force":'$FORCE'}}' | jq . レスポンス例: ====================================================================== { "os-volume_upload_image": { "updated_at": "2017-07-21T04:33:53.000000", "display_description": "", "status": "uploading", "image_id": "084e8d2f-ca9e-4d7c-b343-1c0af1ec97f7", "image_name": "TEST_IMAGE_001", "volume_type": { "id": "641682ba-1d44-4a88-9435-bb96a7e35a00", "deleted_at": null, "updated_at": null, "created_at": "2016-04-28T05:26:13.000000", "deleted": false, "qos_specs_id": null, "name": "M1" }, "container_format": "bare", "size": 30, "disk_format": "raw", "id": "9bd9se80-8846-45bf-99b6-e5eeeab2259n" } } ====================================================================== 項番2.システムストレージの確認 イメージを作成した仮想サーバのシステムストレージのステータスを確認 します。 ステータスが「in-use」になっていることを確認します。 注意事項: ステータスが「uploading」の場合、イメージ作成中となりますので、 仮想サーバを起動しないでください。 環境定義コマンド例: ====================================================================== # VOLUME_ID=<イメージを作成した仮想サーバのシステムストレージID> VOLUME_ID=9bd9se80-8846-45bf-99b6-e5eeeab2259n API実行コマンド例: ====================================================================== curl -Ss $BLOCKSTORAGE/v2/$PROJECT_ID/volumes/$VOLUME_ID -X GET -H "X-Auth-Token:$OS_AUTH_TOKEN" -H "Content-Type:application/json" | jq . レスポンス例: ====================================================================== { "volume": { "size": 30, "os-vol-mig-status-attr:migstat": null, "id": "9bd9se80-8846-45bf-99b6-e5eeeab2259n", "metadata": { "attached_mode": "rw", "readonly": "False" }, "os-vol-mig-status-attr:name_id": null, "encrypted": false, "bootable": "true", "availability_zone": "jp-west-2a", "links": [ { "rel": "self", "href": "http://10.27.0.201/v2/<プロジェクトID>/volumes/9bd9se80-8846-45bf-99b6-e5eeeab2259n" }, { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/volumes/9bd9se80-8846-45bf-99b6-e5eeeab2259n" } ], "attachments": [ { "volume_id": "9bd9se80-8846-45bf-99b6-e5eeeab2259n", "id": "9bd9se80-8846-45bf-99b6-e5eeeab2259n", "server_id": "8ba7b99c-f4b5-4877-a93f-1a3b35e1468e", "device": "/dev/vda", "host_name": null } ], "user_id": "<ユーザーID>", "volume_image_metadata": { "size": "944243200", "min_disk": "30", "image_id": "c3867e5e-afd6-4858-918e-c445f9041c9f", "container_format": "bare", "min_ram": "0", "disk_format": "qcow2", "image_name": "CentOS 6.8 64bit (English) 01", "fcx.base_image_id": "c3867e5e-afd6-4858-918e-c445f9041c9f", "fcx.centos": "true", "checksum": "149b8f5d00ef09e8a2c489f4b3b9cc57" }, "status": "in-use", "created_at": "2017-07-20T12:10:11.000000", "description": "", "os-vol-tenant-attr:tenant_id": "<プロジェクトID>", "volume_type": "M1", "name": "", "os-vol-host-attr:host": "ror-cinder@M1_24", "source_volid": null, "snapshot_id": null } } ====================================================================== 項番3.イメージの確認 作成したイメージを確認します。 環境定義コマンド例: ====================================================================== # IMAGE_ID=<作成したイメージのID> IMAGE_ID=084e8d2f-ca9e-4d7c-b343-1c0af1ec97f7 API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/images/$IMAGE_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "image": { "metadata": { "fcx.base_image_id": "c3867e5e-afd6-4858-918e-c445f9041c9f", "fcx.centos": "true" }, "minRam": 0, "progress": 100, "status": "ACTIVE", "updated": "2017-07-21T04:33:14Z", "links": [ { "rel": "self", "href": "http://10.27.0.201/v2/<プロジェクトID>/images/084e8d2f-ca9e-4d7c-b343-1c0af1ec97f7" }, { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/images/084e8d2f-ca9e-4d7c-b343-1c0af1ec97f7" }, { "rel": "alternate", "type": "application/vnd.openstack.image", "href": "http://10.27.0.119:9292/<プロジェクトID>/images/084e8d2f-ca9e-4d7c-b343-1c0af1ec97f7" } ], "id": "084e8d2f-ca9e-4d7c-b343-1c0af1ec97f7", "OS-EXT-IMG-SIZE:size": 32212254720, "name": "TEST_IMAGE_001", "created": "2017-07-21T04:11:35Z", "minDisk": 0 } } ====================================================================== 注意事項: ・作成したイメージを利用して仮想サーバを作成する場合は、仮想サーバ 作成APIで以下のパラメータを設定してください。 ・"block_device_mapping_v2":[{"uuid":"<作成したイメージID>"}] ・"block_device_mapping_v2":[{"source_type":"image"}] なお、APIユーザーズガイド「仮想サーバ作成」を参照し、仮想サーバ を作成する場合は、以下のパラメータを設定してください。 ・IMAGE_REF_ID=<作成したイメージID> ・SOURCE=image ・同一プロジェクトで作成したイメージを使用する場合はそのまま使用 可能ですが、異なるプロジェクト間で使用する場合はイメージ共有が 必要となります。手順はAPI実行サンプル「02-006_プロジェクト間の 仮想サーバイメージ共有」を参照してください。 以上