使用OOS定时给特定名称开头的ECS实例打标签

简介: 使用OOS定时给名称中包含特定字符开头的ECS实例打标签。

背景介绍

本文介绍如何通过OOS自动给名称中包涵特定字符的ECS打标签。


操作步骤

  1. 登录OOS控制台,点击创建模板 image.png
  2. 输入模板名称(ECS-TagInstancesByInstanceName),点击YAML,输出模板内容(见附录),点击创建模板 image.png
  3. 重复创建模板步骤,创建第二个模板(ECS-BulkyTagInstancesByInstanceName),创建完成后点击创建执行 image.png
  4. 配置模板参数,实例选择全部。配置完成后点击下一步:确定,然后创建执行。 image.png
  5. 执行完成后在ECS控制台查看实例,OOS模板参数中配置的标签已绑定到ECS实例。 image.png

附录

  1. 模板ECS-TagInstancesByInstanceName 的内容:
FormatVersion: OOS-2019-06-01
Description:
  name-en: ECS-TagInstancesByInstanceName
  name-zh-cn: 根据实例名称为ECS实例绑定标签
  en: Tag ECS instances by instance name
  zh-cn: 根据实例名称为ECS实例绑定标签
Parameters:
  regionId:
    Type: String
    Label:
      en: RegionId
      zh-cn: 地域ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  instanceInfo:
    Type: Json
    Label:
      en: InstanceInfo
      zh-cn: 实例信息
  instanceNameStartsField:
    Type: String
    Label:
      en: InstanceNameStartsField
      zh-cn: 实例名称开头字段
  tags:
    Label:
      en: Tags
      zh-cn: 要为ECS实例绑定的标签
    Type: Json
    AssociationProperty: Tags
Tasks:
  - Name: tagResources
    Action: ACS::ExecuteApi
    When:
      Fn::Equals:
        - true
        - Fn::Jq:
            - First
            - .InstanceName | startswith("{{ instanceNameStartsField }}")
            - '{{ instanceInfo }}'
    Description:
      en: Creates and attaches tag to ECS instance
      zh-cn: 创建并挂载标签到ECS实例
    Properties:
      Service: ECS
      API: TagResources
      Parameters:
        RegionId: '{{ regionId }}'
        ResourceIds:
          - Fn::Select:
              - InstanceId
              - '{{ instanceInfo }}'
        ResourceType: Instance
        Tags: '{{ tags }}'
  1. 模板 ECS-BulkyTagInstancesByInstanceName 内容:
FormatVersion: OOS-2019-06-01
Description:
  name-en: ECS-BulkyTagInstancesByInstanceName
  name-zh-cn: 批量根据实例名称为ECS实例绑定标签
  en: Bulky tag ECS instances by instance name
  zh-cn: 批量根据实例名称为ECS实例绑定标签
Parameters:
  regionId:
    Type: String
    Label:
      en: RegionId
      zh-cn: 地域ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  targets:
    Type: Json
    Label:
      en: TargetInstance
      zh-cn: 目标实例
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: ALIYUN::ECS::Instance
      RegionId: regionId
  timerTrigger:
    Type: Json
    Label:
      en: TimerTrigger
      zh-cn: 定时类型
    AssociationProperty: ALIYUN::OOS::Component::TimerTrigger
  instanceNameStartsField:
    Type: String
    Label:
      en: InstanceNameStartsField
      zh-cn: 实例名称开头字段
  tags:
    Label:
      en: Tags
      zh-cn: 要为ECS实例绑定的标签
    Type: Json
    AssociationProperty: Tags
  rateControl:
    Label:
      en: RateControl
      zh-cn: 任务执行的并发比率
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      zh-cn: OOS扮演的RAM角色
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: timerTrigger
    Action: ACS::TimerTrigger
    Description:
      en: Triggers a task as scheduled by specifying type and expression
      zh-cn: 通过指定触发类型和表达式按计划触发任务
    Properties:
      Type:
        Fn::Select:
          - type
          - '{{timerTrigger}}'
      Expression:
        Fn::Select:
          - expression
          - '{{timerTrigger}}'
      EndDate:
        Fn::Select:
          - endDate
          - '{{ timerTrigger }}'
      TimeZone:
        Fn::Select:
          - timeZone
          - '{{ timerTrigger }}'
  - Name: getInstance
    Description:
      en: Views the ECS instances
      zh-cn: 获取ECS实例
    Action: ACS::SelectTargets
    Properties:
      ResourceType: ALIYUN::ECS::Instance
      RegionId: '{{ regionId }}'
      Filters:
        - '{{ targets }}'
    Outputs:
      instanceIds:
        Type: List
        ValueSelector: 'Instances.Instance | map( {"InstanceId": (.InstanceId),"InstanceName": (.InstanceName)})[]'
  - Name: tagResources
    Action: ACS::Template
    Description:
      en: Creates and attaches tag to ECS instance
      zh-cn: 创建并挂载标签到ECS实例
    Properties:
      TemplateName: ECS-TagInstancesByInstanceName
      Parameters:
        regionId: '{{ regionId }}'
        instanceInfo: '{{ ACS::TaskLoopItem }}'
        tags: '{{ tags }}'
        instanceNameStartsField: '{{ instanceNameStartsField }}'
    Loop:
      RateControl: '{{ rateControl }}'
      Items: '{{ getInstance.instanceIds }}'
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - timerTrigger
          - tags
          - instanceNameStartsField
        Label:
          default:
            zh-cn: 设置参数
            en: Configure Parameters
      - Parameters:
          - regionId
          - targets
        Label:
          default:
            zh-cn: 选择实例
            en: Select Ecs Instances
      - Parameters:
          - rateControl
          - OOSAssumeRole
        Label:
          default:
            zh-cn: 高级选项
            en: Control Options
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
云服务器 ECS产品使用问题之出现“1044 - Access denied for user ‘root‘@‘%‘ to database ‘数据库名称‘”这样的错误,该怎么办
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
3月前
|
网络协议 Ubuntu Linux
如何在 DigitalOcean 云服务器上创建自定义品牌名称服务器
如何在 DigitalOcean 云服务器上创建自定义品牌名称服务器
56 0
|
6月前
|
数据安全/隐私保护
雾锁王国怎么修改服务器名称和密码
本文指导如何在阿里云控制台修改雾锁王国的服务器名称和密码。
568 0
|
4月前
|
Ubuntu Linux
修改服务器名称
修改服务器名称
80 0
|
5月前
|
消息中间件 弹性计算 缓存
通过OOS定时升级Redis实例临时带宽
阿里云OOS提供了定时升级Redis实例临时带宽的功能,以应对数据驱动业务中的流量高峰。这个功能允许用户根据预测的业务负载,在特定日期和时间自动增加Redis实例的带宽,确保服务性能和稳定性。在高流量事件结束后,带宽会自动恢复到原设置,节省成本。 此功能适用于电商平台促销、大型游戏更新等场景,确保在流量高峰期间的系统稳定运行。
|
5月前
|
弹性计算 UED
通过OOS定时升级EIP实例临时带宽
阿里云推出了一项定时升级EIP(弹性公网IP)带宽的功能,旨在解决企业在特定流量高峰时段的网络带宽需求。此功能允许用户预设特定日期和时间自动升级带宽,如电商大促、直播活动或数据备份期间,以确保服务稳定并降低成本。用户可通过OOS控制台设置自动化任务,包括定时类型(立即、一次或周期性)、EIP实例地域、带宽值、升级持续时间和执行速率控制。在流量高峰过后,带宽会自动恢复到原设定,以节省费用。此功能适用于按固定带宽计费的EIP实例,不支持按流量计费的公网带宽。
|
6月前
|
存储 运维 NoSQL
通过OOS实现定时备份Redis实例转储到OSS
基于阿里云 Redis 备份功能,现结合 OOS 推出自动转储至 OSS 的新方案,解决了数据安全风险、运维繁琐、成本增加和效率低下等问题。新方案亮点包括: 1. 数据安全性提高:备份文件自动上传至OSS,利用OSS的数据冗余存储,保证数据在硬件故障时的持久性和可用性。 2. 完全自动化:设置好定时规则后,备份和转储过程无需人工干预。 3. 多实例多地域集中管理:支持一次选择多个实例和跨区域备份,简化管理。 4. 灵活的备份策略和成本控制:自定义备份频率,并通过OSS生命周期管理策略控制成本。 5. 监控和告警:集成OSS和云监控,实时掌握备份状态,及时处理异常。
通过OOS实现定时备份Redis实例转储到OSS
|
Python
python自带模块获取服务器主机名称、IP地址和mac地址
python自带模块获取服务器主机名称、IP地址和mac地址
128 1
|
弹性计算 负载均衡 测试技术
运维编排系列场景--跨可用区批量克隆ECS实例
背景可用区(Availability Zone,简称 AZ)是指在同一地域内,电力和网络互相独立的物理区域。例如,华北1(青岛)地域支持2个可用区,包括青岛 可用区B和青岛 可用区C。同一可用区内实例之间的网络延时更小,其用户访问速度更快。将应用部署在多个可用区可以提高应用的可用性,降低故障风险。然而,在实际应用中,有时需要将实例从一个可用区迁移到另一个可用区,以实现故障切换、负载均衡、数据备份与
运维编排系列场景--跨可用区批量克隆ECS实例
|
弹性计算 运维 数据中心
运维编排系列场景--跨账号跨地域实例操作系统补丁修复
运维编排(OOS) 简介什么是OOSOperation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更