开发者社区> 七属> 正文

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

简介: 背景和痛点 应用分布在多地域部署时,如需把一个镜像复制到多个地域(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. 当镜像成功复制到所有目的地域,则该执行结束,执行状态转为成功。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
运维编排系列场景--使用定时运维进行状态逼近
### 面向终态的运维 阿里云运维编排服务(Operation Orchestration Service,简称OOS),是阿里云提供的云上自动化运维服务,能够自动化管理和执行任务。OOS支持定时运维功能,可以周期性重复执行指定的运维任务。基于定时运维,OOS能够对云资源的状态进行管理,实现面向终态的运维。 本文以[ilogtail](https://help.aliyun.com/d
3131 0
运维编排系列场景--批量管理自定义的软件包
运维编排(OOS) 简介 什么是OOS Operation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于
1163 0
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件
### 场景介绍 有些应用在运行过程中会不断产生文件,比如下载的文件、备份文件、日志文件,我们需要在磁盘使用率过高后删除不再使用的或者过期的文件。这里我们以清理/tmp下的临时文件为例,说明如何通过运维编排(OOS)提供的公共模板来实现此类运维操作。 ### 解决方案 我们准备一台ECS实例,登陆进系统后,查看它的磁盘占用率: ![磁盘占用2.png](https:
526 0
【技术战疫】运维编排灵活审批场景解决方案
运维编排(OOS) 简介 什么是OOS Operation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于
786 0
运维编排场景系列-----自动一键连通跳板机
跳板机是云盾提供的一个核心系统运维和安全审计管控平台。通过跳板机可以操作跳板机内连通的实例,并在跳板机内对实例进行免密连接操作。此文章构建的是一个简易的跳板机例文。 前提条件 实例状态为运行中(Running) 在控制台查看准备的秘钥对或创建秘钥对 保存秘钥对中的私钥部分 模版说明: 父.
2227 0
运维编排场景系列---Linux数据盘扩展分区和文件系统
本文讲述如何利用OOS实现扩容linux数据盘后扩展其分区和文件系统。目前支持仅有一块数据盘,扩展已有MBR分区或扩容裸设备文件系统,具体流程请参考帮助文档扩展分区和文件系统_Linux数据盘。
1785 0
运维编排场景系列----Autoscaling 通过LifecycleHook在实例启动时安装软件
本文将为您介绍如何通过LifecycleHook实现弹性伸缩组中实例启动/释放时执行命令
843 0
运维编排场景系列-----流水线操作函数计算
函数计算(FC)是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。在函数计算的基础上,为实现自动创建与运行函数计算,以及输出函数计算的运行结果。为简单执行上述的流水先操作,此时可以使用OOS服务来实现一系列的自动化动作。
1472 0
+关注
七属
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
基于Terraform的自动化管理云上资源实践
立即下载
ECS全知道(下) 镜像与快照+块存储、安全、网运维与监控
立即下载
采用Harbor开源企业级Registry实现高效安全的镜像运维
立即下载