运维编排场景系列-----ECS实例系统快照下载到本地

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,内容安全 1000 次 1年
对象存储 OSS,标准 - 同城冗余存储 20GB 3个月
简介: 运维编排场景系列-----ECS实例系统快照下载到本地 ECS实例的系统快照文件不能直接从云端下载到本地,不过通过OOS的模板可以轻松帮您实现下载数据到本地。 解决方案 此过程您只需选定要创建系统快照的ECS实例,并准备一个可保存镜像的OSS bucket,剩下工作交给OSS就可以了,当OOS准备完待下载内容后,您单击下载快照的镜像文件即可。

ECS实例的系统快照文件不能直接从云端下载到本地,不过通过OOS的模板可以轻松帮您实现下载数据到本地。

解决方案

此过程您只需选定要创建系统快照的ECS实例,并准备一个可保存镜像的OSS bucket,剩下工作交给OSS就可以了,当OOS准备完待下载内容后,您单击下载快照的镜像文件即可。
OOS主要帮您做了这些,其先对您选定的ECS实例打系统快照,完成后对快照创建镜像,再将镜像导出到OSS的bucket内,最后将bucket中镜像对应的文件名返回。

OOS模版任务

  1. 获取被指定的ECS实例系统盘信息。
  2. 检查ECS实例状态,保证可创建快照。
  3. 对ECS实例系统盘进行快照创建。
  4. 等待快照创建完成。
  5. 对快照创建镜像。
  6. 等待镜像创建完成。
  7. 将镜像导出到指定的OSS的bucket中。
  8. 返回镜像导出后在bucket内对应的文件名。

模版内容

FormatVersion: OOS-2019-06-01
Description: Export image of snapshot which is created by ECS instance system disk to OSS.
Parameters:
  instanceIds:
    Description: The ID list of the ECS instance.
    Type: List
  OSSBucket:
    Description: The bucket of the image to export into.
    Type: String
  OSSPrefix:
    Description: The prefix for name of the image to export into oos.
    Type: String
  regionId:
    Description: The region Id of instance.
    Type: String
    MinLength: 1
    MaxLength: 30
  OOSAssumeRole:
    Description: The RAM role to be assumed by OOS.
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'

Tasks:

  - Name: querysDiskInfo
    Action: 'ACS::ExecuteAPI'
    Description: Get info of the data disk.
    Properties:
      Service: ECS
      API: DescribeDisks
      Parameters:
        RegionId: '{{ regionId }}'
        InstanceId: '{{ ACS::TaskLoopItem }}'
        DiskType: system
    Outputs:
      systemDiskId:
        Type: String
        ValueSelector: 'Disks.Disk[].DiskId'
    Loop:
      Items: '{{ instanceIds }}'
      Outputs:
        systemDiskIds:
          AggregateType: 'Fn::ListJoin'
          AggregateField: systemDiskId

  - Name: checkInstanceAvailable
    Action: 'ACS::CheckFor'
    Description: Checks whether the ECS instance status is running or stopped.
    Properties:
      Service: ECS
      API: DescribeInstances
      Parameters:
        RegionId: '{{ regionId }}'
        InstanceIds:
          - '{{ ACS::TaskLoopItem }}'
      DesiredValues:
        - Running
        - Stopped
      PropertySelector: 'Instances.Instance[].Status'
    Loop:
      Items: '{{ instanceIds }}'


  - Name: createSnapshot
    Action: 'ACS::ExecuteAPI'
    Description: Create a snapshot with the specified disk ID and snapshot name.
    Properties:
      Service: ECS
      API: CreateSnapshot
      Parameters:
        RegionId: '{{ regionId }}'
        DiskId: '{{ ACS::TaskLoopItem }}'
        SnapshotName: 'Snapshot-from-{{ ACS::TaskLoopItem }}-{{ ACS::ExecutionId }}'
    Outputs:
      snapshotId:
        Type: String
        ValueSelector: SnapshotId
    Loop:
      Items: '{{ querysDiskInfo.systemDiskIds }}'
      Outputs:
        snapshotIds:
          AggregateType: 'Fn::ListJoin'
          AggregateField: snapshotId

  - Name: untilSnapshotsReady
    Action: 'ACS::WaitFor'
    Description: Waits for the snapshot to be accomplished.
    Properties:
      Service: ECS
      API: DescribeSnapshots
      Parameters:
        RegionId: '{{ regionId }}'
        SnapshotIds:
          - '{{ ACS::TaskLoopItem }}'
      DesiredValues:
        - accomplished
      PropertySelector: 'Snapshots.Snapshot[].Status'
    Loop:
      Items: '{{ createSnapshot.snapshotIds }}'

  - Name: createImage
    Action: 'ACS::ExecuteAPI'
    Description: Creates a custom image.
    Properties:
      Service: ECS
      API: CreateImage
      Parameters:
        RegionId: '{{ regionId }}'
        ImageName: 'img-from-{{ ACS::TaskLoopItem }}-{{ ACS::ExecutionId }}'
        SnapshotId: '{{ ACS::TaskLoopItem }}'
    Outputs:
      imageId:
        Type: String
        ValueSelector: ImageId
    Loop:
      Items: '{{ createSnapshot.snapshotIds }}'
      Outputs:
        ImageIds:
          AggregateType: 'Fn::ListJoin'
          AggregateField: imageId

  - Name: untilCreateImageReady
    Action: 'ACS::WaitFor'
    Description: Wait for created images available.
    Properties:
      Service: ECS
      API: DescribeImages
      Parameters:
        RegionId: '{{ regionId }}'
        ImageId: '{{ ACS::TaskLoopItem }}'
      DesiredValues:
        - Available
      PropertySelector: 'Images.Image[].Status'
    Loop:
      Items: '{{ createImage.ImageIds }}'

  - Name: exportImageToOSS
    Action: 'ACS::ExecuteAPI'
    Description: Copy image.
    Properties:
      Service: ECS
      API: ExportImage
      Parameters:
        RegionId: '{{ regionId }}'
        ImageId: '{{ ACS::TaskLoopItem }}'
        OSSBucket: '{{ OSSBucket }}'
        OSSPrefix: '{{ OSSPrefix }}'
    Loop:
      Items: '{{ createImage.ImageIds }}'
      Outputs:
        TaskIds:
          AggregateType: 'Fn::ListJoin'
          AggregateField: TaskId
    Outputs:
      TaskId:
        ValueSelector: TaskId
        Type: String

  - Name: queryNameOfFile
    Action: 'ACS::ExecuteAPI'
    Description: Get object name of image.
    Properties:
      Service: ECS
      API: DescribeTaskAttribute
      Parameters:
        RegionId: '{{ regionId }}'
        TaskId: '{{ ACS::TaskLoopItem }}'
    Loop:
      Items: '{{ exportImageToOSS.TaskIds }}'
      Outputs:
        OSSObjectNames:
          AggregateType: 'Fn::ListJoin'
          AggregateField: OSSObjectName
    Outputs:
      OSSObjectName:
        ValueSelector:  'OperationProgressSet.OperationProgress[].RelatedItemSet.RelatedItem[1].Value'
        Type: String

Outputs:
  OSSObjectNames:
    Value: '{{ queryNameOfFile.OSSObjectNames }}'
    Type: List
  imageIds:
    Value: '{{ createImage.ImageIds }}'
    Type: List
  snapshotIds:
    Value: '{{ createSnapshot.snapshotIds }}'
    Type: List
  instanceIds:
    Value: '{{ instanceIds }}'
    Type: List

模版参数

  • instanceIds: 实例ID,在该参数中输入您准备打快照的ECS实例ID,支持添加多个实例ID进行批量操作。
  • OSSBucket:  OSS的Bucket,在该参数中输入一个可以保存镜像文件的OSS bucket,以便您从中下载快照的镜像文件。
  • OSSPrefix:  OSS文件名前缀,输入一个存储在OSS bucket内镜像的文件名前缀。
  • regionId: 将要创建系统快照的ECS实例所在region。

操作步骤

  1. 登录到运维编排服务控制台
  2. 单击 自定义模版 ,将上文的模版内容复制到YAML格式编辑区域,输入模版名称。
    20190905162521_
  3. 单击 创建模版
    EventTriggerValidation
  4. 模版创建成功后,单击该模版的 创建执行
  5. 风险确认模式选择 客户了解风险,无需确认 。
    20190905162552
  6. 单击 下一步:设置参数
  7. 将准备好的模版参数输入到对应参数栏。
  8. 执行使用到的权限的来源选择 当前账号的已有权限(确保创建执行的账号具有模版中涉及的云产品API权限,如无权限请参考账号访问控制完成账号授权)。
    20190905170200
  9. 单击下一步:确认创建。
    20190905163233
  10. 单击 创建执行 。
  11. 待执行结束后查看输出的存入到bucket中数据的objectName。
    20190905170959
  12. 根据模版执行结果返回实例ID对应的objectName,在OSS中选择并下载快照的镜像文件到本地。
    20190905171858
相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
235 18
|
存储 Ubuntu Linux
HPE SPP 2025.09.00.00 - HPE 服务器固件、驱动程序和系统软件包 (Released Oct 2025)
HPE SPP 2025.09.00.00 - HPE 服务器固件、驱动程序和系统软件包
109 0
|
3月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
261 15
|
4月前
|
域名解析 运维 监控
阿里云轻量服务器的系统镜像和应用镜像的区别
轻量应用服务器是阿里云推出的易用型云服务器,支持一键部署、域名解析、安全管理和运维监控。本文介绍其系统镜像与应用镜像的区别及选择建议,助您根据业务需求和技术能力快速决策,实现高效部署。
|
2月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
228 10
|
2月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
2月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
363 8
|
2月前
|
存储 监控 安全
阿里云渠道商:云服务器价格有什么变动?
阿里云带宽与存储费用呈基础资源降价、增值服务差异化趋势。企业应结合业务特点,通过阶梯计价、智能分层、弹性带宽等策略优化成本,借助云监控与预算预警机制,实现高效、可控的云资源管理。
|
2月前
|
弹性计算 运维 安全
区别及选择指南:阿里云轻量应用服务器与ECS云服务器有什么区别?
阿里云轻量应用服务器适合个人开发者、学生搭建博客、测试环境,易用且性价比高;ECS功能更强大,适合企业级应用如大数据、高流量网站。根据需求选择:轻量入门首选,ECS专业之选。
229 2
|
2月前
|
弹性计算 ice
阿里云4核8G云服务器配置价格:热门ECS实例及CPU处理器型号说明
阿里云2025年4核8G服务器配置价格汇总,涵盖经济型e实例、计算型c9i等热门ECS实例,CPU含Intel Xeon及AMD EPYC系列,月费159元起,年付低至1578元,按小时计费0.45元起,实际购买享折扣优惠。
426 1

热门文章

最新文章