运维编排场景系列--- 批量复制镜像到其他地域

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 背景和痛点 应用分布在多地域部署时,如需把一个镜像复制到多个地域(Region),当前您极可能是在控制台手动选择源镜像,然后逐个选择目的地域并进行复制镜像操作,再等待和查看所有地域的镜像复制完成。如此操作费时费力,而且容易出错。

背景和痛点

应用分布在多地域部署时,如需把一个镜像复制到多个地域(Region),当前您极可能是在控制台手动选择源镜像,然后逐个选择目的地域并进行复制镜像操作,再等待和查看所有地域的镜像复制完成。如此操作费时费力,而且容易出错。

解决方案

通过运维编排服务OOS,创建一个复制镜像到多地域模版的执行,一键即可助您完成向多地域复制镜像,精准便捷。
您只需选择一个源镜像(待复制的镜像),选择要复制到的目的地域(或者直接选择所有地域),然后单击创建执行就可完成镜像复制到多个地域。您也可结合实际场景重定义OOS模板,如此甚至可免去选择目的地域这一步。

操作步骤

  1. 首先登录到运维编排控制台 。
  2. 单击公共模版
  3. 选择批量跨地域克隆镜像(ACS-ECS-BulkyCopyImage)模版,单击创建执行 。
  4. 单击 下一步,设置参数 。
  5. 输入以下的参数 。

    • ImageId: 待复制的源镜像ID。
    • targetRegionIds:将要复制到的目的地域(region)ID。可自行指定多个目的地域(region),表示复制镜像到被选中的目的地域;也可只选择"all-regions",表示复制镜像到所有阿里云可用地域。
    • rateControl:模版中循环任务的并发及容错设置选项。
    • OOSAssumeRole:可选参数。OOS默认使用当前登录用户的权限执行动作;如果指定了RAM角色名称,OOS扮演该RAM角色执行动作。

      20191025175521
  6. 单击 下一步,确认 ,并单击 创建执行 。
  7. 执行管理中可查看刚刚创建的执行,若创建执行成功,且执行状态处于运行中,则表示镜像正在复制中。

    oos
  8. 当执行状态转换为成功时,则表示镜像复制成功,可在执行详情中查看目的地域新镜像ID。

    oos
  9. 打开目的地域控制台,可在镜像列表中查看到复制成功的新镜像。
    oos

oos
oos

附录:公共模版及其逻辑

  • 批量跨地域克隆镜像模板内容
FormatVersion: OOS-2019-06-01
Description:
  en: Cross Regions copy image.
  zh-cn: 批量跨地域克隆镜像。
  name-en: ACS-ECS-BulkyCopyImage
  name-zh-cn: 批量跨地域克隆镜像
  categories:
    - image_manage
Parameters:
  imageId:
    Description:
      en: The ID of the image to clone.
      zh-cn: 源镜像ID。
    Type: String
    AssociationProperty: 'ALIYUN::ECS::Image::ImageId'
  targetRegionIds:
    Description:
      en: The Target Region Ids.
      zh-cn: 目标地域ID。
    Type: List
    AllowedValues:
      - all-regions
      - cn-qingdao
      - cn-beijing
      - cn-zhangjiakou
      - cn-huhehaote
      - cn-hangzhou
      - cn-shanghai
      - cn-shenzhen
      - cn-chengdu
      - cn-hongkong
      - ap-northeast-1
      - ap-southeast-1
      - ap-southeast-2
      - ap-southeast-3
      - ap-southeast-5
      - ap-south-1
      - us-east-1
      - us-west-1
      - eu-west-1
      - me-east-1
      - eu-central-1
    Default:
      - all-regions
  rateControl:
    Description:
      en: Concurrency rate of task execution.
      zh-cn: 任务执行的并发比率。
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 15
  OOSAssumeRole:
    Description:
      en: The RAM role to be assumed by OOS.
      zh-cn: OOS扮演的RAM角色。
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: queryAllAvailableRegions
    Action: 'ACS::ExecuteAPI'
    Description:
      en: View all available regions.
      zh-cn: 查询当前所有可用地域。
    Properties:
      Service: ECS
      API: DescribeRegions
      Parameters:
        RegionId: '{{ACS::RegionId}}'
    Outputs:
      regionIds:
        Type: List
        ValueSelector: >-
          Regions.Region[]|.RegionId|select([scan("{{ACS::RegionId}}|test")]|length<1)
      allRegionsChosen:
        Type: String
        ValueSelector: '.|{{targetRegionIds}}|sort|.[0]'
  - Name: whetherCloneToAllRegions
    Action: 'ACS::Choice'
    Description:
      en: Choose next task by targetRegionIds Chosen.
      zh-cn: 根据所选目的地域判断下一步执行。
    Properties:
      DefaultTask: copyImage
      Choices:
        - When:
            'Fn::Equals':
              - all-regions
              - '{{ queryAllAvailableRegions.allRegionsChosen }}'
          NextTask: copyImageToAllRegions
  - Name: copyImage
    Action: 'ACS::ECS::CopyImage'
    OnSuccess: 'ACS::END'
    OnError: 'ACS::END'
    Description:
      en: Copy image to regions chosen.
      zh-cn: 复制镜像到被指定的地域。
    Properties:
      regionId: '{{ ACS::RegionId }}'
      imageId: '{{ imageId }}'
      targetRegionId: '{{ ACS::TaskLoopItem }}'
    Loop:
      Items: '{{ targetRegionIds }}'
      RateControl: '{{ rateControl }}'
      Outputs:
        imageIdsWithRegion:
          AggregateType: 'Fn::ListJoin'
          AggregateField: imageIdWithRegion
    Outputs:
      imageIdWithRegion:
        ValueSelector: '.|(.imageId),"{{ ACS::TaskLoopItem }}"'
        Type: List
  - Name: copyImageToAllRegions
    Action: 'ACS::ECS::CopyImage'
    Description:
      en: Copy image to all available regions.
      zh-cn: 复制镜像到所有可用地域。
    Properties:
      regionId: '{{ ACS::RegionId }}'
      imageId: '{{ imageId }}'
      targetRegionId: '{{ ACS::TaskLoopItem }}'
    Loop:
      Items: '{{ queryAllAvailableRegions.regionIds }}'
      RateControl: '{{ rateControl }}'
      Outputs:
        imageIdsWithRegion:
          AggregateType: 'Fn::ListJoin'
          AggregateField: imageIdWithRegion
    Outputs:
      imageIdWithRegion:
        ValueSelector: '.|(.imageId),"{{ ACS::TaskLoopItem }}"'
        Type: List
Outputs:
  imageIds:
    Type: List
    Value:
      'Fn::If':
        - 'Fn::Equals':
            - all-regions
            - '{{ queryAllAvailableRegions.allRegionsChosen }}'
        - '{{ copyImageToAllRegions.imageIdsWithRegion }}'
        - '{{ copyImage.imageIdsWithRegion }}'
  • 模板执行逻辑如下

    1. 查询阿里云所有可用地域,供所选目的地域为all-regions时使用。
    2. 判断您选择的目的地域是阿里云所有可用地域还是某些地域。
    3. 向已选择的目的地域复制镜像。
    4. 当镜像成功复制到所有目的地域,则该执行结束,执行状态转为成功。
目录
相关文章
|
4月前
|
弹性计算 运维 Linux
带你读《云上自动化运维宝典》——ECS多场景迁移上云最佳实践(3)
带你读《云上自动化运维宝典》——ECS多场景迁移上云最佳实践(3)
194 1
|
5月前
|
存储 运维 数据中心
TStack运维笔记(06)- 迁移镜像库
TStack运维笔记(06)- 迁移镜像库
17 0
|
7月前
|
NoSQL 测试技术 API
从程序员到架构师开发运维场景实战篇:一人一套测试环境
一人一套测试环境 本篇开始讲第16次架构经历:一人一套测试环境。同样,先介绍业务场景。 业务场景:测试环境何时能释放出来使用 当时,公司的基础设施使用的是虚拟机,而且还未迁移到容器。
|
8月前
|
运维 Linux Windows
【运维杂谈】如何将iso镜像挂载到Linux系统中?
【运维杂谈】如何将iso镜像挂载到Linux系统中?
217 0
|
9月前
|
运维 Windows
【运维】安装Ghost镜像系统步骤
【运维】安装Ghost镜像系统步骤
【运维】安装Ghost镜像系统步骤
|
10月前
|
弹性计算 负载均衡 测试技术
运维编排系列场景--跨可用区批量克隆ECS实例
背景可用区(Availability Zone,简称 AZ)是指在同一地域内,电力和网络互相独立的物理区域。例如,华北1(青岛)地域支持2个可用区,包括青岛 可用区B和青岛 可用区C。同一可用区内实例之间的网络延时更小,其用户访问速度更快。将应用部署在多个可用区可以提高应用的可用性,降低故障风险。然而,在实际应用中,有时需要将实例从一个可用区迁移到另一个可用区,以实现故障切换、负载均衡、数据备份与
559 0
运维编排系列场景--跨可用区批量克隆ECS实例
|
10月前
|
弹性计算 运维 数据中心
运维编排系列场景--跨账号跨地域实例操作系统补丁修复
运维编排(OOS) 简介什么是OOSOperation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更
394 0
|
10月前
|
弹性计算 运维 监控
运维编排系列场景--通过告警触发自动重启CPU使用率高的ECS实例
运维编排(OOS) 简介什么是OOSOperation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更
184 0
|
11月前
|
弹性计算 运维 负载均衡
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——配套实验:访问4层&7层CLB场景对比(1)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——配套实验:访问4层&7层CLB场景对比(1)
101 0
|
11月前
|
弹性计算 运维 负载均衡
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——配套实验:访问4层&7层CLB场景对比(2)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——配套实验:访问4层&7层CLB场景对比(2)
92 0