イメージの作成

仮想サーバのイメージを作成します。

始める前に

  • イメージの作成には、ブロックストレージのイメージ作成APIを使用します。
  • 作成するイメージには、任意のイメージ名を指定できます。

    ヒント: 本手順で指定したイメージ名が、エクスポートしたイメージファイル名にも反映されます。
注: エクスポートしたイメージファイルがオブジェクトストレージに保管されるまでは、作成したイメージを削除しないでください。

このタスクについて

イメージの作成手順を以下に示します。

ヒント: 手順の実行にはブロックストレージの操作権限が必要です。

手順

  1. トークンの取得

    利用者管理サービスのAPIを実行してトークンを取得します。

    認証トークンのスコープにドメインは指定できません。

  2. 変数の設定
    # BLOCKSTORAGE=<ブロックストレージのAPIエンドポイント>
    # TOKEN=<取得したトークン>
    # PROJECT_ID=<プロジェクトID>
    # VOLUME_ID=<ボリュームID>
  3. パラメータファイルの準備

    以下の内容をparam.jsonとして保存します。

    {
        "os-volume_upload_image": {
            "container_format": "bare",
            "disk_format": "raw",
            "image_name": "my_image",
            "force": true
        }
    }
  4. イメージの作成

    イメージの作成APIを実行します。

    • 東日本リージョン3/西日本リージョン3の場合

      # curl -X POST -H "X-Auth-Token: ${TOKEN}" -H "Content-Type: application/json" ${BLOCKSTORAGE}/v3/${PROJECT_ID}/volumes/${VOLUME_ID}/action -d @param.json
    • 東日本リージョン3/西日本リージョン3以外の場合

      # curl -X POST -H "X-Auth-Token: ${TOKEN}" -H "Content-Type: application/json" ${BLOCKSTORAGE}/v2/${PROJECT_ID}/volumes/${VOLUME_ID}/action -d @param.json

    レスポンスボディの"status"が"uploading"になっている場合、イメージの作成は開始されています。

    {
        "os-volume_upload_image":{
            "status":"uploading",
            "image_id":"835871a5-7d99-4bff-a64e-34879bf9523d",
            "image_name":"CentOS",
            "volume_type":{
                "name":"M1",
                "qos_specs_id":null,
                "deleted":false,
                "created_at":"2014-10-11T11:26:56.000000",
                "updated_at":null,
                "deleted_at":null,
                "id":"13a0247c-9363-401d-acd3-c5d07ccd1a45"
            },
            "container_format":"bare",
            "size":40,
            "disk_format":"raw",
            "id":"fdf9df9a-894d-48fe-b091-d1b13dd4309a",
            "display_description":"",
            "updated_at":"2016-04-27T03:37:32.000000"
        }
    }
  5. 変数の設定

    イメージの作成APIで発行されたイメージIDを変数に設定します。

    # IMAGE=<イメージのAPIエンドポイント>
    # IMAGE_ID=835871a5-7d99-4bff-a64e-34879bf9523d
  6. イメージの作成結果の確認

    イメージ情報の取得APIを実行します。

    # curl -X GET -H "X-Auth-Token: ${TOKEN}" ${IMAGE}/v2/images/${IMAGE_ID}

タスクの結果

レスポンスボディの"status"が"active"になっている場合、イメージのエクスポートを実施できます。

{
    "container_format":"bare",
    "min_ram":0,
    "updated_at":"2016-04-27T05:35:34Z",
    "fcx.base_image_id":"24913e2de96f6b16b9dfc2c8eab762a4",
    "auth_version":"v2.0",
    "file":"/v2/images/835871a5-7d99-4bff-a64e-34879bf9523d/file",
    "owner":"790f1c092038413a8dd6771a033b17f5",
    "id":"835871a5-7d99-4bff-a64e-34879bf9523d",
    "size":42949672960,
    "self":"/v2/images/835871a5-7d99-4bff-a64e-34879bf9523d",
    "disk_format":"raw",
    "storage_path":"/glance/835871a5-7d99-4bff-a64e-34879bf9523d",
    "schema":"/v2/schemas/image",
    "status":"active",
    "tags":[],
    "visibility":"private",
    "min_disk":0,
    "fcx.win":"true",
    "name":"CentOS",
    "checksum":"77f88c025b891ad3b9113c3296e43ea4",
    "created_at":"2016-04-27T04:22:27Z",
    "protected":false
}

次のタスク

イメージのエクスポート