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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
系统运维管理,不限时长
简介: 运维编排场景系列-----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
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
16天前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
188 79
|
12天前
|
运维
阿里云服务器批量执行命令(系统运维管理oos)
阿里云【系统运维管理oos】批量执行详情
34 4
|
16天前
|
弹性计算 运维 Ubuntu
使用阿里云服务器自动搭建WordPress网站流程,超简单by系统运维管理OOS
本教程介绍如何使用阿里云服务器(ECS)和系统运维管理OOS自动搭建WordPress网站,支持Ubuntu、CentOS及Alibaba Cloud Linux等操作系统。前提条件包括ECS实例处于运行中、有公网IP且安全组已开启80端口。安装步骤简单:进入ECS快速购买控制台选择预装WordPress,确认下单后通过管理控制台查看实例详情并开放安全组端口。最后,通过实例公网IP访问,出现WordPress登录页即表示安装成功。
|
1月前
|
运维 Ubuntu 应用服务中间件
自动化运维之路:使用Ansible进行服务器管理
在现代IT基础设施中,自动化运维已成为提高效率和可靠性的关键。本文将引导您通过使用Ansible这一强大的自动化工具来简化日常的服务器管理任务。我们将一起探索如何配置Ansible、编写Playbook以及执行自动化任务,旨在为读者提供一条清晰的路径,从而步入自动化运维的世界。
|
1月前
|
运维 网络安全 Python
自动化运维:使用Ansible实现批量服务器配置
在快速迭代的IT环境中,高效、可靠的服务器管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具,来简化和加速批量服务器配置过程。我们将从基础开始,逐步深入到更复杂的应用场景,确保即使是新手也能跟上节奏。文章将不包含代码示例,而是通过清晰的步骤和逻辑结构,引导读者理解自动化运维的核心概念及其在实际操作中的应用。
|
1月前
|
运维 Ubuntu 网络协议
自动化运维:使用Ansible进行服务器配置管理
在现代IT架构中,自动化运维已成为提升效率、减少人为错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和标准化服务器的配置管理过程。通过具体的代码示例和操作步骤,我们将展示如何快速部署应用、管理配置以及自动化日常任务,从而确保环境的一致性和可靠性。
|
1月前
|
安全 云计算
服务器系统资源不足怎么办
服务器系统资源不足怎么办
42 4
|
2月前
|
弹性计算 监控 数据库
制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程
本文通过一个制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程,展示了企业级应用上云的实践方法与显著优势,包括弹性计算资源、高可靠性、数据安全及降低维护成本等,为企业数字化转型提供参考。
69 5
|
2月前
|
运维 安全 Ubuntu
自动化运维:使用Ansible进行服务器配置管理
在现代IT基础设施中,自动化运维是确保高效、稳定和安全服务的关键。本文将深入介绍如何使用Ansible这一开源工具来简化服务器配置管理工作,从基础安装到高级应用,我们将一步步展示如何通过Ansible Playbooks实现自动化部署和维护,旨在帮助读者构建更加灵活和可扩展的运维体系。
50 7
|
2月前
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。

热门文章

最新文章