使用OOS定时清理指定Tag下的镜像

背景简介

Operation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更详细的介绍请参见什么是运维编排服务。本文详细介绍如何使用OOS定时清理指定标签下的镜像。



操作步骤

创建模板

1.登录OOS控制台,在我的模板页面点击创建模板
使用OOS定时清理指定Tag下的镜像
2.复制下文提供的模板内容到YAML栏中,输入模板名称(Delete-ExpiredImage),点击创建模板
使用OOS定时清理指定Tag下的镜像


模板(Delete-ExpiredImage)内容:

FormatVersion: OOS-2019-06-01
Description:
  en: Delete expired images by tags
  zh-cn: 通过标签删除指定过期镜像
  name-en: Delete-ExpiredImage
  name-zh-cn: 删除过期镜像
Parameters:
  regionId:
    Type: String
    Label:
      en: RegionId
      zh-cn: 地域ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  force:
    Label:
      en: Force
      zh-cn: 是否强制删除镜像
    Description:
      zh-cn: |-
        <td class="entry colsep-1 rowsep-1"> <p class="p">取值范围: </p>
        <ul class="ul">
        <li class="li">true:强制删除自定义镜像,忽略当前镜像是否被其他实例使用。</li>
        <li class="li">false:正常删除自定义镜像,删除前检查当前镜像是否被其他实例使用。</li>
        </ul>
        <p class="p">默认值:false</p>
        </td>
    Type: Boolean
    Default: false
  expiredDays:
    Label:
      en: ExpiredDays
      zh-cn: 镜像过期天数
    Type: Number
    Default: 1
  tags:
    Label:
      en: Tags
      zh-cn: 镜像标签
    Type: Json
    AssociationProperty: Tags
    AssociationPropertyMetadata:
      ShowSystem: false
    Default: []
  rateControl:
    Label:
      en: RateControl
      zh-cn: 任务执行的并发比率
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 100%
      Concurrency: 10
Tasks:
  - Name: describeImages
    Action: ACS::ExecuteAPI
    Description: ''
    Properties:
      Service: ECS
      API: DescribeImages
      Parameters:
        RegionId: '{{ regionId }}'
        ImageOwnerAlias: self
        Tags: '{{ tags }}'
        Filter:
          - Key: CreationEndTime
            Value:
              Fn::FormatUTCTime:
                - Fn::AddHour:
                    - '{{ ACS::CurrentUTCTime }}'
                    - Fn::Eval:
                        - '-{{ expiredDays }}*24'
                - '%Y-%m-%dT00:00Z'
    Outputs:
      imageIds:
        Type: List
        ValueSelector: .Images.Image[].ImageId
  - Name: deleteImages
    Action: ACS::ECS::DeleteImage
    Description:
      en: Delete the expired images.
      zh-cn: 删除过期镜像。
    Properties:
        regionId: '{{ regionId }}'
        imageId: '{{ ACS::TaskLoopItem }}'
    Loop:
      Items: '{{ describeImages.imageIds }}'
      RateControl: '{{ rateControl }}'
Outputs:
  deletedImageIds:
    Type: List
    Value: '{{ describeImages.imageIds }}'


定时执行模版

1.找到定时运维,点击创建

使用OOS定时清理指定Tag下的镜像
2.定时设置:选择周期性重复执行,配置执行Cron表达式,截图所示为每天0点0分定时执行
使用OOS定时清理指定Tag下的镜像


3.模板选择:在我的模板选择步骤一创建的模板(Delete-ExpiredImage)。
使用OOS定时清理指定Tag下的镜像


4.设置参数:选择镜像所在地域,输入过期天数(定时执行时镜像过期的天数,1表示一天前创建的镜像),选择指定镜像标签。点击立即执行
使用OOS定时清理指定Tag下的镜像

5.查看详情:点击执行详情。在定时类执行列表中查看即将执行的详情。执行会在指定时间删除目标镜像。

使用OOS定时清理指定Tag下的镜像

使用OOS定时清理指定Tag下的镜像

上一篇:Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离(二)


下一篇:Sublime text无法自动通过package control安装插件的研究