运维编排场景系列----Autoscaling 通过LifecycleHook在实例启动时安装软件-阿里云开发者社区

开发者社区> 开发与运维> 正文

运维编排场景系列----Autoscaling 通过LifecycleHook在实例启动时安装软件

简介: 本文将为您介绍如何通过LifecycleHook实现弹性伸缩组中实例启动/释放时执行命令

本文将为您介绍如何通过LifecycleHook实现弹性伸缩组中实例启动/释放时执行命令

相关介绍

lifecycleHook通过关联OOS模板的方式来实现到实例执行命令的工作,关于lifecycleHook与OOS如何协作,你可以查看兄弟文章AutoScaling 通过lifecycleHook自动添加Redis白名单

关联模板

ACS-ESS-LifeCycleRunCommand模板负责执行命令的操作。

模板具有如下行为:

  1. 根据指定的实例ID列表并发到实例执行命令

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

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

参数指定

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

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

注意事项

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

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

  1. metadata必须为JSON字符串格式;
  2. metadata中的键,必须与OOS模板参数一一对应;
  3. OOS模板中不存在默认值的参数必须指定,存在默认值的参数可选择是否指定以覆盖默认值

角色配置

OOS服务使用OOSServiceRole做为默认角色,您需要创建并给该角色相应的权限以使OOS完成相应的操作
配置步骤如下:
1.在Ram控制台创建角色并指定受信服务为运维编排服务
ess0
2.为OOS配置相应的权限 这里需要ECS和ESS的Full权限
ess1

操作步骤

ess2

ess3

ess4

手动将实例扩容到4台 然后看看执行结果
ess5

执行后我们可以看到在OOS控制台有相应的一条执行并执行成功了,可以点详情看执行内容
ess6

总结

至此我们完成了在实例启动时到实例执行命令的整个操作,相应的,您还可以再移除实例之前到实例执行命令,借此您可以完成安装软件和优雅停机的整个过程。

系列文章

主题文章

阿里云重磅发布云上自动化利器——运维编排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实例系统快照下载到本地
运维编排场景系列----批量更换系统盘
运维编排场景系列----基于镜像的日常发布
运维编排场景系列----自动创建多个区域同类型存储空间

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章