运维编排场景系列-----一键批量重置实例密码

本文涉及的产品
系统运维管理,不限时长
简介:

当需要在页面上就可以实现批量选择实例,并输入实例需要重置的密码,简便化重置多台实例密码。此时使用OOS服务可以实现此功能。

前提条件

  1. 实例状态为启动中Starting)时,无法重置实例密码
  2. 安全控制的ECS实例的OperationLocks不能标记为"LockReason" : "security"

模版说明:

本模版主要功能为:

  1. 获取实例
  2. 检查实例运行状态是否符合修改密码
  3. 修改密码
  4. 重启ECS实例
FormatVersion: OOS-2019-06-01
Description:
  en: Reset ECS instance password and reboot instance.
  zh-cn: 重置实例密码,并重启ECS实例。
  name-en: ResetPasswordAndRebootInstance
  name-zh-cn: 重置实例密码及重启实例
Parameters:
  Targets:
    Type: Json
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: ALIYUN::ECS::Instance
  Password:
    Type: String
    Description:
      en: The ECS instance, 8 to 30 characters in length, which must include three types of characters:uppercase and lowercase letters, numbers, and special symbols.
      zh-cn: 实例密码,长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号中的三类字符。
    MinLength: 8
    MaxLength: 30
  RateControl:
    Description:
      en: Concurrency ratio of task execution.
      zh-cn: 任务执行的并发比率。
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Description: The RAM role to be assumed by OOS.
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: getInstance
    Description:
      en: Views the ECS instances.
      zh-cn: 获取ECS实例。
    Action: ACS::SelectTargets
    Properties:
      ResourceType: ALIYUN::ECS::Instance
      Filters:
        - '{{ Targets }}'
    Outputs:
      instanceIds:
        Type: List
        ValueSelector: Instances.Instance[].InstanceId
  - Name: checkInstanceReady
    Action: ACS::CheckFor
    Description: Check the ECS instance is running status.
    Properties:
      Service: ECS
      API: DescribeInstances
      Parameters:
        InstanceIds:
          - '{{ ACS::TaskLoopItem }}'
      NotDesiredValues:
        - Starting
      PropertySelector: Instances.Instance[].Status
    Outputs:
      instanceIds:
        Type: List
        ValueSelector: Instances.Instance[]
    Loop:
      RateControl: '{{ rateControl }}'
      Items: '{{ getInstance.instanceIds }}'
  - Name: ModifyInstanceAttribute
    Action: ACS::ExecuteAPI
    Description:
      en: Upgrade ECS instance temporary bandwidth.
      zh-cn: 升级ECS实例临时带宽。
    Properties:
      Service: ECS
      API: ModifyInstanceAttribute
      Parameters:
        InstanceId: '{{ ACS::TaskLoopItem }}'
        Password: '{{ Password }}'
    Loop:
      RateControl: '{{ rateControl }}'
      Items: '{{ getInstance.instanceIds }}'
  - Name: rebootInstance
    Action: ACS::ECS::RebootInstance
    Description:
      en: Restarts the ECS instances.
      zh-cn: 重启实例。
    Properties:
      instanceId: '{{ ACS::TaskLoopItem }}'
    Loop:
      RateControl: '{{ rateControl }}'
      Items: '{{ getInstance.instanceIds }}'

模版参数说明:

参数 说明 示例
Targets 根据实例标签(tags)或实例ID(InstanceId)选定需要的实例。 i-11111111111
Password 实例的密码。长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号中的三类字符。特殊符号可以是:
()~!@#$%^&*-_+={}[]:;'<>,.?/`
qwer1234Q
RateControl 固定参数。
- 速率控制类型:并发控制
- 并发速率:1
- 最大错误次数:0
OOSAssumeRole 可选参数。
- (默认设置)当前账号的已有权限:执行您使用的账号的权限动作。请确保您拥有创建自定义镜像涉及的所有ECS API调用权限。
- 指定RAM角色,使用该角色的权限:如果指定了RAM角色名称,OOS扮演该RAM角色执行运维任务。
当前账号的已有权限

操作步骤

  1. 请访问运维编排OOS的控制1575967687928_2a2bdc63_7a88_4a10_a561_178b68c70790
  2. 单击我的模版,单击创建模板按钮,选取空白模板1575969102712_7959cd3f_5f5c_4d6c_ad97_6e4f7beeaed1
  3. 将上述提供的模板粘贴到yaml栏,输入名称ResetPasswordAndRebootInstance或自定义名称,点击创建模板1575969564387_d74b482b_3c55_4312_80b5_dd974062092e
  4. 单击创建执行1575969699013_b6028a73_fa3c_40b4_937d_9128e3df4779
  5. 保持基本信息的默认设置,单击下一步:设置参数
  6. 完成参数设置填写,单击下一步:确认1575969978213_76d7fddf_90bb_4749_9122_4d0bb5e4a08a
  7. 查看参数设置是否无误,确认无误后单击创建执行1575969995953_35cce40c_d63f_4a85_a1f6_d06f9dd73a30
  8. 执行管理中查看创建的运维任务。1575970020724_53c6656c_5623_4adc_8833_a3b282c4813b
  9. 执行结果1575970787139_b4994fc9_7680_4a17_a947_0acab28cd592

系列文章

主题文章

阿里云重磅发布云上自动化利器——运维编排OOS

最佳实践

玩转运维编排服务的权限:Assume Role+Pass Role
阿里云运维编排新功能:一键批量克隆ECS
批量在多台ECS内执行命令

场景系列

运维编排场景系列----更新ECS镜像
运维编排场景系列----给ECS实例自动打TAG
运维编排场景系列----从实例中拷贝文件到OSS
运维编排场景系列----给实例加到SLS机器组
运维编排场景系列----检测MFA功能状态
运维编排场景系列----每日统计多Region实例的运行状态
运维编排场景系列----如何使用jq
运维编排场景系列----分批到机器上运行命令
运维编排场景系列----更新镜像后自动更新伸缩配置镜像
运维编排场景系列----向Linux实例上传文件
运维编排场景系列----运行远端shell脚本
运维编排场景系列----在ECS实例上运行Ansible-playbook
运维编排场景系列----下载JVM堆栈到OSS
运维编排系列场景----将实例的固定公网IP转换为其它新EIP
运维编排场景系列----自动定时升级临时带宽
运维编排场景系列----批量更新云助手客户端
运维编排系列场景----批量释放实例
运维编排场景系列----ECS实例系统快照下载到本地
运维编排场景系列----批量更换系统盘
运维编排场景系列----自动创建多个区域同类型存储空间

相关文章
|
运维 应用服务中间件 网络安全
Ansible自动化运维工具之解决SSH连接使用明文密码问题(4)
Ansible自动化运维工具之解决SSH连接使用明文密码问题(4)
136 0
|
30天前
|
运维 自然语言处理 开发者
作为一名运维人员,使用通义灵码个人版处理日常工作中的代码相关任务,极大地提升了我的工作效率。以下是我使用通义灵码的具体实践场景、效果和心得,以及相应的截图。
作为一名运维人员,我使用通义灵码处理日常工作中的代码任务,效率提升了30%。通义灵码帮助我快速理解复杂代码、生成准确的代码注释,并能从自然语言生成代码示例,大幅减少了代码编写和理解的时间。
57 3
|
2月前
|
机器学习/深度学习 人工智能 运维
|
2月前
|
弹性计算 JSON 运维
阿里云ECS实例运维属性-如何控制实例的宕机表现
介绍如何通过运维属性指定阿里云ECS的宕机运维表现等
|
3月前
|
存储 边缘计算 运维
边缘计算问题之OpenYurt 对边缘计算场景中的运维难题如何解决
边缘计算问题之OpenYurt 对边缘计算场景中的运维难题如何解决
38 1
|
3月前
|
运维 监控 测试技术
5个常见运维场景,用这几个Python脚本就够了!
5个常见运维场景,用这几个Python脚本就够了!
|
5月前
|
消息中间件 弹性计算 缓存
通过OOS定时升级Redis实例临时带宽
阿里云OOS提供了定时升级Redis实例临时带宽的功能,以应对数据驱动业务中的流量高峰。这个功能允许用户根据预测的业务负载,在特定日期和时间自动增加Redis实例的带宽,确保服务性能和稳定性。在高流量事件结束后,带宽会自动恢复到原设置,节省成本。 此功能适用于电商平台促销、大型游戏更新等场景,确保在流量高峰期间的系统稳定运行。
|
5月前
|
弹性计算 UED
通过OOS定时升级EIP实例临时带宽
阿里云推出了一项定时升级EIP(弹性公网IP)带宽的功能,旨在解决企业在特定流量高峰时段的网络带宽需求。此功能允许用户预设特定日期和时间自动升级带宽,如电商大促、直播活动或数据备份期间,以确保服务稳定并降低成本。用户可通过OOS控制台设置自动化任务,包括定时类型(立即、一次或周期性)、EIP实例地域、带宽值、升级持续时间和执行速率控制。在流量高峰过后,带宽会自动恢复到原设定,以节省费用。此功能适用于按固定带宽计费的EIP实例,不支持按流量计费的公网带宽。
|
4月前
|
运维 监控 容灾
智能化运维场景分析
【7月更文挑战第12天】智能运维目标是解放运维人员,提高效率,确保业务连续性和优化资源利用。
|
6月前
|
运维 算法 物联网
五大智能运维场景
【5月更文挑战第3天】智能运维场景分5类:异常检测、根因诊断、故障自愈、事件预警、效能优化。