文档首页> > API参考> API> 镜像> 制作镜像

制作镜像

分享
更新时间: 2019/07/18 16:09

功能介绍

本接口用于制作私有镜像,支持:

  • 使用云服务器制作私有镜像。
  • 使用上传至OBS桶中的外部镜像文件制作私有镜像。
  • 使用数据卷制作系统盘镜像。

作为异步接口,调用成功,只是说明云平台收到了制作请求,镜像是否制作成功需要通过异步任务查询接口查询该任务的执行状态,具体请参考异步任务查询

URI

URI格式

POST /v2/cloudimages/action

约束与限制(使用外部镜像文件制作Windows镜像)

  • QCOW2格式的镜像文件必须没有加密属性。
  • 外部镜像文件中必须包含系统盘。
  • 外部镜像文件的大小必须不超过1TB,当镜像文件大于128GB时,需将镜像文件格式换为ZVHD2或RAW格式后才可以使用快速导入功能导入外部镜像文件。
  • 用于创建私有镜像的源云服务器系统盘大小大于等于40GB且不超过1024GB。
  • Windows操作系统的外部镜像文件必须包含可用的Administrator账户和密码。在创建私有镜像过程中,您可能会使用相应的账户名和密码登录云服务器进行相关配置。
  • 镜像支持IDE设备驱动,并且驱动在系统启动时自动加载。
  • 镜像启动分区和系统分区必须都包含在同一个磁盘中。
  • 镜像引导方式必须为BIOS而不是UEFI的引导方式。
  • 请确保镜像文件中已经设置或包含登录该镜像所创建云主机云服务器的密码或证书,或者在镜像系统中已经安装并配置了cloudbase-init
  • 为避免使用该镜像文件导出的云服务器被攻击,请确保镜像文件的初始密码至少包含以下4种字符:
    • 大写字母
    • 小写字母
    • 数字
    • 特殊字符,包括!@$%^-_=+[{}]:,./?
  • 如果外部镜像文件的磁盘采用了特定的加密机制,则可能会导致镜像注册后创建的云服务器无法正常使用。
  • 因为一些默认驱动在云平台无法使用,所以不支持使用包含OEM类的操作系统的外部镜像文件创建私有镜像。
  • 外部镜像文件中的操作系统不可以与特定的硬件绑定。
  • 外部镜像文件中的操作系统必须支持全虚拟化。
  • 上传外部镜像文件到OBS桶时,OBS桶和镜像文件的存储类别必须是OBS标准存储

约束与限制(使用外部镜像文件制作Linux镜像)

  • QCOW2格式的镜像文件必须没有加密属性。
  • 外部镜像文件中必须包含系统盘。
  • 外部镜像文件的大小必须不超过1TB,当镜像文件大于128GB时,需将镜像文件格式换为ZVHD2或RAW格式后才可以使用快速导入功能导入外部镜像文件。
  • 对于Linux操作系统,“/etc/fstab”文件中必须不包含自动挂载用户盘的配置项,否则创建的云服务器可能无法正常登录。
  • 用于创建私有镜像的源云服务器系统盘大小大于等于40GB且不超过1024GB。
  • 请确保镜像文件中已经设置或包含登录该镜像所创建云主机云服务器的密码或证书,或者在镜像文件系统中已经安装并配置了Cloud-Init
  • Linux操作系统的镜像必须包含您可以正常登录的root用户和密码。在创建私有镜像过程中,您可能会使用相应的账户名和密码登录云服务器进行相关配置。
  • 为避免使用该镜像文件导出的云服务器被攻击,请确保镜像文件的初始密码至少包含以下4种字符:
    • 大写字母
    • 小写字母
    • 数字
    • 特殊字符,包括!@$%^-_=+[{}]:,./?
  • 镜像支持IDE和PVOPS设备驱动,并且驱动在系统启动时自动加载。
  • 镜像启动分区和系统分区必须都包含在同一个磁盘中。
  • 镜像引导方式必须为BIOS而不是UEFI的引导方式。
  • 如果外部镜像文件的磁盘采用了特定的加密机制,则可能会导致镜像注册后创建的云服务器无法正常使用。
  • 因为一些默认驱动在云平台使用,所以不支持使用包含OEM类的操作系统的外部镜像文件创建私有镜像。
  • 外部镜像文件中的操作系统不可以与特定的硬件绑定。
  • 外部镜像文件中的操作系统必须支持全虚拟化。
  • 如果外部镜像文件的系统盘为LVM设备,通过镜像文件创建的私有镜像创建弹性云服务器时不支持文件注入。
  • 上传外部镜像文件到OBS桶时,OBS桶和镜像文件的存储类别必须是OBS标准存储

约束与限制(使用服务器的数据盘制作数据盘镜像)

  • 使用云服务器的数据盘创建数据盘镜像时,要确保该云服务器必须有系统盘,且该云服务器的数据盘不能为空。
  • 同一个数据盘镜像,只能给一个数据盘使用,不能重复选择。

约束与限制(使用数据卷创建系统盘镜像)

  • 使用数据盘制作系统盘镜像时,需确保该数据盘中有操作系统,且操作系统已提前完成优化步骤。如何优化,请参见《镜像服务用户指南》的优化私有镜像(Windows)优化私有镜像(Linux)章节。
  • 由于系统无法校验您在调用该接口时指定的卷是否存在操作系统,因此制作系统盘镜像时,请务必确保您输入的os_version(操作系统版本)值合法,具体请参见相关参数取值列表

请求消息

  • 使用云服务器制作镜像时的Request Body参数说明
    表1 请求参数

    参数

    是否必选

    类型

    说明

    name

    String

    系统盘镜像名称。name参数说明请参考镜像属性

    description

    String

    镜像描述信息。_description参数说明请参考镜像属性。支持字母、数字、中文等,不支持回车、<、 >,长度不能超过1024个字符。默认为空。

    instance_id

    String

    用于制作镜像的源云服务器ID。

    如何获取云服务器ID:

    1. 登录控制台。
    2. 选择“计算 > 弹性云服务器”。
    3. 在云服务器列表栏,单击源云服务器名称,在详情页查看ID。

    data_images

    List<Map>

    需要转换的数据盘信息,其中,当使用云服务器上的数据盘进行私有数据盘镜像创建时,该字段必选,详情请参见表2

    如果不是用于制作数据盘镜像,该字段默认为空。

    说明:

    当需要用数据盘创建数据盘镜像时,表1中的其他参数(如name、description、tags)如果有值,系统以data_images中的值为准,不允许再输入instance_id。

    tags

    List<String>

    镜像标签列表。默认为空。

    tags和image_tags只能使用一个。

    image_tags

    List<Map>

    新规范的镜像标签列表。默认为空。

    tags和image_tags只能使用一个。

    enterprise_project_id

    String

    表示当前镜像所属的企业项目。

    • 取值为0或无该值,表示属于default企业项目。
    • 取值为UUID,表示属于该UUID对应的企业项目。

      关于企业项目ID的获取及企业项目特性的详细信息,请参考《企业管理用户指南》。

    max_ram

    Int

    表示镜像支持的最大内存,单位为MB。

    min_ram

    Int

    表示镜像支持的最小内存,单位为MB,默认为0,表示不受限制。

    表2 data_images字段数据结构说明

    参数

    是否必选

    类型

    说明

    name

    String

    数据盘镜像名称。

    volume_id

    String

    数据盘ID。

    description

    String

    数据盘描述。

    tags

    List<String>

    数据盘镜像标签。

  • 使用上传至OBS桶中的外部镜像文件时的Request Body参数说明

    参数

    是否必选

    类型

    说明

    name

    String

    镜像名称。name参数说明请参考镜像属性

    description

    String

    镜像描述信息。_description参数说明请参考镜像属性。支持字母、数字、中文等,不支持回车、<、 >,长度不能超过1024个字符。默认为空。

    os_version

    String

    操作系统版本。

    使用上传至OBS桶中的外部镜像文件制作镜像时生效,具体取值见相关参数取值列表

    说明:

    “is_quick_import”的值为“true”时,即使用镜像文件快速导入方式导入系统盘镜像,则该参数为必填参数。

    image_url

    String

    OBS桶中外部镜像文件地址。

    在使用OBS桶的外部镜像文件制作镜像时生效且为必选字段。格式为<OBS桶名>:<OBS镜像文件名称>。

    注意:

    此处的OBS桶和镜像文件的存储类别必须是OBS标准存储。

    min_disk

    Int

    最小系统盘大小。

    在使用OBS桶的外部镜像文件制作镜像时生效且为必选字段。取值为40~1024GB。

    is_config

    Boolean

    是否自动配置。

    取值为true或false。

    如果需要后台自动配置,取值为true,否则为false。默认取值为false。

    后台自动配置的内容请参考“注册镜像”章节。

    cmk_id

    String

    创建加密镜像的用户主密钥,具体取值请参考《密钥管理服务用户指南》获取。

    tags

    List<String>

    镜像标签列表。默认为空。

    tags和image_tags只能使用一个。

    image_tags

    List<Map>

    新规范的镜像标签列表。默认为空。tags和image_tags只能使用一个。

    type

    String

    镜像的类型。

    取值为ECS、BMS、FusionCompute、Ironic。默认使用“ECS”。

    • ECS/FusionCompute:表示是ECS服务器的镜像。
    • BMS/Ironic:表示是BMS服务器的镜像。

    enterprise_project_id

    String

    表示当前镜像所属的企业项目。

    • 取值为0或无该值,表示属于default企业项目。
    • 取值为UUID,表示属于该UUID对应的企业项目。

      关于企业项目ID的获取及企业项目特性的详细信息,请参考《企业管理用户指南》。

    max_ram

    Int

    表示镜像支持的最大内存,单位为MB。

    min_ram

    Int

    表示镜像要求的最小内存,单位为MB,默认为0,表示不受限制。

    data_images

    List<Map>

    需要导入的数据盘信息。

    外部镜像文件最多可携带3块数据盘,此时系统会创建1块系统盘、3块数据盘。

    详情请参见表3

    说明:
    • 使用数据盘镜像文件创建数据盘镜像时,数据盘镜像的操作系统类型将和系统盘镜像保持一致。
    • 表3中的其他参数(如name、description、tags)如果有值,系统以data_images中的值为准。

    is_quick_import

    Boolean

    是否使用镜像文件快速导入方式,导入系统盘镜像。

    • 是,配置为true。
    • 否,配置为false。

    关于镜像文件快速导入的约束与限制请参见镜像文件快速导入

    architecture

    String

    镜像的架构类型。取值包括:

    • x86
    • arm

    默认使用“x86”。

    说明:

    当架构类型为arm时,镜像引导方式将自动转为UEFI的引导方式。

    表3 data_images字段说明

    参数

    是否必选

    类型

    说明

    name

    String

    镜像名称。

    name参数说明请参见镜像属性

    description

    String

    镜像描述信息。默认为空。

    支持字母、数字、中文等,不支持回车、<、 >,长度不能超过1024个字符。

    _description参数说明请参见镜像属性

    image_url

    String

    OBS桶中外部镜像文件地址。

    格式为“<OBS桶名>:<OBS镜像文件名称>”

    说明:

    此处的OBS桶和镜像文件的存储类别必须是OBS标准存储。

    min_disk

    Int

    最小数据盘大小。

    单位:GB

    is_quick_import

    Boolean

    当前数据盘镜像是否使用镜像文件快速导入方式,创建数据盘镜像。

    • 是,配置为true。
    • 否,配置为false。

    关于镜像文件快速导入的约束与限制请参见镜像文件快速导入

    tags

    List<String>

    镜像标签列表。默认为空。

    tag的参数说明请参见镜像标签数据格式

    tags和image_tags只能使用一个。

    image_tags

    List<Map>

    新规范的镜像标签列表。默认为空。

    image_tags参数说明请参见镜像标签数据格式

    tags和image_tags只能使用一个。

  • 使用数据卷制作系统盘镜像时的Request Body参数说明

    参数

    是否必选

    类型

    说明

    name

    String

    系统盘镜像名称。

    name参数说明请参见镜像属性

    volume_id

    String

    数据盘的卷ID。

    os_version

    String

    操作系统版本。

    os_version的具体取值请参见相关参数取值列表,请严格按照列表要求填写该值,否则可能会引起制作的系统盘镜像不可用。

    制作系统盘镜像过程中,如果系统能获取到卷中的操作系统,则以卷中的操作系统版本为准,此时,设置的os_version无效。如果系统无法获取到卷中的操作系统,此时,系统以输入的os_version版本为准。

    type

    Sting

    镜像的类型。

    取值为ECS、BMS、FusionCompute、Ironic。

    • ECS/FusionCompute:表示是云服务器的镜像。
    • BMS/Ironic:表示是裸金属服务器的镜像。

    默认使用ECS。

    description

    String

    镜像描述信息,默认为空。

    参数说明请参见镜像属性

    • 支持字母、数字、中文等。
    • 不支持回车、<、 >。
    • 长度不能超过1024个字符。

    min_ram

    Int

    镜像运行需要的最小内存,单位为MB。

    参数取值依据云服务器的规格限制,默认设置为0。

    云服务器的规格限制,请参见规格清单

    max_ram

    Int

    镜像运行需要的最大内存,单位为MB。

    参数取值依据云服务器的规格限制,默认设置为0。

    云服务器的规格限制,请参见规格清单

    tags

    List<String>

    镜像标签列表,默认为空。

    tags和image_tags只能使用一个。

    image_tags

    List<Map>

    新规范的镜像标签列表,默认为空。

    tags和image_tags只能使用一个。

    enterprise_project_id

    String

    表示当前镜像所属的企业项目。

    • 取值为0或无该值,表示属于default企业项目。
    • 取值为UUID,表示属于该UUID对应的企业项目。

    关于企业项目ID的获取及企业项目特性的详细信息,请参考《企业管理用户指南》。

  • 请求样例
    • 使用tags参数及云服务器制作镜像
      POST https://{Endpoint}/v2/cloudimages/action
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      {
             "name": "ims_test",
             "description": "云服务器制作镜像",
             "instance_id": "877a2cda-ba63-4e1e-b95f-e67e48b6129a",
             "tags":[  
                   "aaa.111",  
                   "bbb.333",  
                   "ccc.444"  
               ]
      } 
      
    • 使用tags参数及云服务器制作数据盘镜像
      POST https://{Endpoint}/v2/cloudimages/action
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      {
             "data_images": [{"name": "ims_data_image_test",
             "description": "云服务器数据卷制作数据盘镜像",
             "volume_id": "c5dfbd0c-bf0a-4798-a453-61dc6b54aa30",
             "tags":[
                        "aaa.111",
                        "bbb.333",
                        "ccc.444"
                    ]}]
      }
      
    • 使用tags参数及上传至OBS桶中的外部镜像文件制作镜像
      POST https://{Endpoint}/v2/cloudimages/action
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      {
            "name": "ims_test_file",
            "description": "OBS文件制作镜像",
            "image_url": "ims-image:centos70.qcow2",
            "os_version": " CentOS 7.0 64bit",
            "is_config_init":true,
            "min_disk": 40,
            "is_config":true,
            "tags":[  
                  "aaa.111",  
                  "bbb.333",  
                  "ccc.444"  
            ]     
      }
      
    • 使用image_tags参数及云服务器制作镜像
      POST https://{Endpoint}/v2/cloudimages/action
      1
      2
      3
      4
      5
      6
      {
             "name": "ims_test",
             "description": "云服务器制作镜像",
             "instance_id": "877a2cda-ba63-4e1e-b95f-e67e48b6129a",
             "image_tags":[{"key":"key2","value":"value2"},{"key":"key1","value":"value1"}]
      } 
      
    • 使用image_tags参数及云服务器制作数据盘镜像
      POST /v2/cloudimages/action
      1
      2
      3
      4
      5
      6
      7
      {
             "data_images": [{"name": "ims_data_image_test",
             "description": "云服务器数据卷制作数据盘镜像",
             "volume_id": "c5dfbd0c-bf0a-4798-a453-61dc6b54aa30",
             "image_tags":[{"key":"key2","value":"value2"},{"key":"key1","value":"value1"}]
             }]
      }
      
    • 使用image_tags参数及上传至OBS桶中的外部镜像文件制作镜像
      POST https://{Endpoint}/v2/cloudimages/action
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      {
             "name": "ims_test_file",
             "description": "OBS文件制作镜像",
             "image_url": "ims-image:centos70.qcow2",
             "os_version": " CentOS 7.0 64bit",
             "is_config_init":true,
             "min_disk": 40,
             
             "image_tags":[{"key":"key2","value":"value2"},{"key":"key1","value":"value1"}]    
      }
      
    • 使用tags参数及数据卷制作系统盘镜像
      POST https://{Endpoint}/v2/cloudimages/action
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      {
              "name": "ims_test",
              "description": "数据卷制作系统盘镜像",
              "volume_id":"877a2cda-ba63-4e1e-b95f-e67e48b6129a",
              "type":"ECS",
              "os_version":"CentOS 7.0 64bit",
              "tags":[
                      "aaa.111",
                      "bbb.333",
                      "ccc.444" 
                 ]
       } 
      
    • 使用image_tags参数及数据卷创建系统盘镜像
      POST https://{Endpoint}/v2/cloudimages/action
      1
      2
      3
      4
      5
      6
      7
      8
      {
              "name": "ims_test",
              "description": "数据卷制作系统盘镜像",
              "volume_id":"877a2cda-ba63-4e1e-b95f-e67e48b6129a",
              "type":"ECS",
              "os_version":"CentOS 7.0 64bit",
              "image_tags":[{"key":"key2","value":"value2"},{"key":"key1","value":"value1"}] 
       } 
      

响应消息

  • 参数说明

    名称

    类型

    说明

    job_id

    String

    异步任务ID。

    详情请参见异步任务查询

  • 响应样例
    STATUS CODE 200
    1
    2
    3
    {
        "job_id": "8a12fc664fb4daa3014fb4e581380005"
    }
    

返回值

  • 正常

    200

  • 异常

    返回值

    说明

    400 Bad Request

    请求错误,具体返回错误码请参见错误码

    401 Unauthorized

    鉴权失败。

    403 Forbidden

    没有操作权限。

    404 Not Found

    找不到资源。

    500 Internal Server Error

    服务内部错误。

    503 Service Unavailable

    服务不可用。

如果您喜欢这篇文档,您还可以:

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区