基于OOS实现定时清理磁盘

OOS简介


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


操作步骤


1.登陆OOS控制台,找到我的模板,点击创建模板
基于OOS实现定时清理磁盘
2.选择空白模版。
基于OOS实现定时清理磁盘
3.复制下文提供的模板到YAML栏中,输入模板名称(CleanUpDisks,点击创建模板
基于OOS实现定时清理磁盘
模板内容:


FormatVersion: OOS-2019-06-01
Description:
en: Clean up disks.
zh-cn: 定时清理磁盘。
name-en: CleanUpDisks
name-zh-cn: 清理磁盘
Parameters:
regionId:
Type: String
Description:
  en: The id of region.
  zh-cn: 地域ID。
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'

tagValues:

Description:
  en: The value list of tag.
  zh-cn: 标签值列表。
Type: List

cleanUpInfos:

Description:
  en: 'The infos of disk to clean up.Format: 3d|/root/log/|*.log,3h|/root/log/|*.access,30m|C:\Users\Administrator\log\|*.log.'
  zh-cn: 磁盘清理信息。格式:3d|/root/log/|*.log,3h|/root/log/|*.access,30m|C:\Users\Administrator\log\|*.log
Type: String

threshold:

Description:
  en: The disk usage threshold.
  zh-cn: 磁盘使用率阈值。
Type: Number
MaxValue: 100

rateControl:

Description:
  en: Concurrency ratio of task execution.
  zh-cn: 任务执行的并发比率。
Type: Json
AssociationProperty: RateControl
Default:
  Mode: Concurrency
  MaxErrors: 0
  Concurrency: 10

OOSAssumeRole:

Description:
  en: The RAM role to be assumed by OOS.
  zh-cn: OOS扮演的RAM角色。
Type: String
Default: OOSServiceRole

RamRole: '{{ OOSAssumeRole }}'
Tasks:

Name: getInstance

Description:
  en: Views the ECS instances.
  zh-cn: 获取ECS实例。
Action: 'ACS::ExecuteApi'
Properties:
  Service: ECS
  API: DescribeInstances
  Parameters:
    RegionId: '{{ regionId }}'
    Tags:

Key: appgroup
Value: "{{ ACS::TaskLoopItem }}"

Loop:
  RateControl: '{{ rateControl }}'
  Items: '{{ tagValues }}'
  Outputs:
    instanceIds:

AggregateType: Fn::ListJoin

AggregateField: instanceId

Outputs:
  instanceId:
    Type: List
    ValueSelector: 'Instances.Instance[].InstanceId'

Name: cleanUpDisk

Action: 'ACS::ECS::CleanUpDisk'
Description:
  en: Execute cloud assistant command to clean up disk.
  zh-cn: 执行云助手命令清理磁盘。
Properties:
  regionId: '{{ regionId }}'
  instanceId: '{{ ACS::TaskLoopItem }}'
  threshold: '{{ threshold }}'
  cleanUpInfos: '{{ cleanUpInfos }}'
Loop:
  RateControl: '{{ rateControl }}'
  Items:
    'Fn::Jq':
First'[.[][]]''{{ getInstance.instanceIds }}'

执行模板

1.找到CleanUpDisks,点击创建执行,点击下一步:设置参数


基于OOS实现定时清理磁盘


2.根据提示设置参数,点击下一步:确定


基于OOS实现定时清理磁盘
参数解释:




  • regionId: 地域。

  • tagValues: 标签值,List类型,每行表示不同的值。TagKey已固定为:appgroup。

  • cleanUpInfos: 磁盘清理信息,3d|/root/log/|.log表示:删除/root/log/匹配.log的修改于3天前的所有文件,可输入过个清理规则,各个规则间用","隔开。

  • threshold: 磁盘使用率阀值,磁盘使用率超过阀值后会清理磁盘。

  • rateControl: 任务执行并发速率,使用默认值即可。

3.确认参数无误后,点击创建。执行完成后,可以在执行详情查看执行结果。


基于OOS实现定时清理磁盘

上一篇:我的ECS使用体验报告


下一篇:ECS使用有感