AutoScaling 通过lifecycleHook自动添加Redis白名单

弹性伸缩核心数据库组件不包含Redis实例,想要自动化配置伸缩组实例到Redis白名单中,是一件相当麻烦的事情。弹性伸缩与OOS运维编排合作,通过lifecycleHook的方式为大家提供了一种简单,可靠的自动化添加Redis白名单的方案。

OOS 简介

什么是OOS

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

OOS核心概念

模板:

OOS通过模板来定义具体的运维动作。OOS为用户提供了大量的通用模板来应对丰富的运维场景,同时,OOS允许用户方便的创建和修改模板来实现自定义运维动作。例如,ACS-ESS-LifeCycleModifyRedisIPWhitelist为用户提供了将弹性伸缩创建出来的实例的private ip添加Redis白名单的运维动作。关于模板的定义与语法,请查看 模板

执行:

模板定义了一个具体的运维动作,通过模板,我们可以创建出一个执行,即按照模板中定义的任务按照一定的顺序依次执行。我们可以手动触发一次执行,并观察其运行结果和状态是否符合预期,然后再将其应用于自动化流程。关于OOS执行的更多内容请查看 执行

关联模板

模板介绍

ACS-ESS-LifeCycleModifyRedisIPWhitelist模板负责添加/移除Redis白名单操作。当您需要实现自动化添加/移除Redis白名单操作时,您需要针对扩缩容流程分别设置两条OOS类型lifecycleHook。

模板具有如下行为:

  1. 根据指定的实例ID列表获取Private IP列表;
  2. 将Private IP列表添加/移除Redis实例IP列表;

该模板同时支持回调功能:

  1. 执行成功时,通过回调通知lifecycleHook继续执行挂起的伸缩活动;
  2. 执行失败时,通过回调通知lifecycleHook回滚挂起的伸缩活动;
  3. 当无回调时,lifecycleHook挂起的伸缩活动将在超时后,执行hook指定的策略。

参数指定

用户可以创建类型为OOS的lifecycleHook,并选择OOS系统模板ACS-ESS-LifeCycleModifyRedisIPWhitelist。在选择了指定的系统模板之后,你需要为模板运行配置合适的参数,例如目标Redis实例的ID,实例ID列表,lifecycleHook ID信息等。由于实例ID列表,lifecycleHook ID等信息只有在运行时才能获取到,你需要通过伪参数的提供占位符信息,支持的伪参数信息如下:

  1. ${scalingGroupId},当前伸缩活动所属的伸缩组id;
  2. ${instanceIds},当前伸缩活动关联的实例列表;
  3. ${regionId},当前伸缩活动执行的地域;
  4. ${lifecycleActionToken},伸缩活动的等待状态标识符,用于提前结束当前的挂起活动;
  5. ${lifecycleHookId},关联生命周期挂钩id。

注意事项

使用ACS-ESS-LifeCycleModifyRedisIPWhitelist模板时您需要注意:

  1. 当您创建该模板的lifecycleHook时,您需要将伸缩组中存量的实例列表手动添加到Redis白名单中,否则,当移除一个Redis白名单中不存在的实例私网IP时,将出现错误。

当指定生命周期挂钩关联一个OOS模板时,用户需要通过生命周期挂钩的通知标识(NotificationMetadata,简称metadata)为创建OOS执行指定所需的参数。针对OOS模板的metadata,你需要注意:

  1. metadata必须为JSON字符串格式;
  2. metadata中的键,必须与OOS模板参数一一对应;
  3. OOS模板中不存在默认值的参数必须指定,存在默认值的参数可选择是否指定以覆盖默认值。
  1. OOS模板通过扮演指定的角色 OOSServiceRole 执行关联的运维操作,因此您需要确保该角色存在,并具有相应的权限。

最佳实践

控制台使用

下面以控制台创建自动添加Redis白名单的OOS类型lifecycleHook为例进行使用介绍。

首先,您需要确定OOS模板扮演的角色 OOSServiceRole 存在,并具有相应的权限,否则您需要首先创建该角色。
登录 RAM控制台,点击新建角色。

AutoScaling 通过lifecycleHook自动添加Redis白名单

角色类型选择 阿里云 服务.

AutoScaling 通过lifecycleHook自动添加Redis白名单

角色名称必须为 OOSServiceRole, 授信服务选择 运维编排服务。点击完成进行创建。

AutoScaling 通过lifecycleHook自动添加Redis白名单

为角色添加操作权限。

AutoScaling 通过lifecycleHook自动添加Redis白名单

AutoScaling 通过lifecycleHook自动添加Redis白名单

针对扩容流程创建类型为OOS模板的生命周期挂钩,这时,弹框提示您选择OOS模板,这里需要选择系统模板ACS-ESS-LifeCycleModifyRedisIPWhitelist。

AutoScaling 通过lifecycleHook自动添加Redis白名单

接下来,您需要填充模板使用的参数,此处已经为您自动填充了部分伪参数,您只需要填写目标Redis实例ID,同时选择modifyMode为Append。点击确认,核实您传入的参数。

AutoScaling 通过lifecycleHook自动添加Redis白名单

点击创建执行,将回到创建lifecycleHook的弹框。

AutoScaling 通过lifecycleHook自动添加Redis白名单

再次点击创建生命周期挂钩,完成创建。

此时您可以执行一条扩容伸缩规则,并在OOS控制台观察模板的执行过程。

AutoScaling 通过lifecycleHook自动添加Redis白名单

上一篇:根目录下README文档翻译


下一篇:平头哥RVB2601板子上手——GPIO