为了满足用户个性化的故障动作需求,腾讯云混沌演练平台开发了自定义动作,您可以将故障脚本封装为一个故障动作参与演练编排,在演练执行时,自定义动作会下发到选定的 CVM 执行。此外,自定义动作还支持动态参数配置,主账号下动作资源共享,让您在扩展故障注入能力的同时做到一次创建,多次复用,下面结合利用自定义脚本 kill 指定进程,向您介绍自定义动作的使用。
业务在运行过程中,可能因为各种意外情况导致进程终止,为了验证服务是否能够自动拉起,我们可以利用自定义脚本实现 kill 进程来模拟这种情况。
操作步骤
步骤1: 创建动作
![](https://qcloudimg.tencent-cloud.cn/image/document/a77d5eebee3a5c7cc3f1957baea3bf44.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/a77d5eebee3a5c7cc3f1957baea3bf44.png)
步骤2:填写动作基本信息
1. 填写自定义动作的基本信息:
说明:
自定义动作支持两种命令类型:
shell:指 Linux 脚本命令
powershell:指 Window 脚本命令
![](https://qcloudimg.tencent-cloud.cn/image/document/0fe79127213f870fc9913bd88a327eca.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/0fe79127213f870fc9913bd88a327eca.png)
其中命令内容支持动态参数替换,将脚本中需要动态替换的参数使用{{}}扩起来,再单击使用参数,会自动将动态参数提取出来。
ps -ef | grep -w {{process_name}} | grep -v grep | awk '{print $2;}' | xargs kill -9
2. 单击保存,即可在动作列表中看到刚创建的自定义动作,如果您更细粒度的权限管理需求,可以在创建时指定标签,只有属于同一标签下的子用户才可以共享该自定义动作。
![](https://qcloudimg.tencent-cloud.cn/image/document/71c04f7340441d0e73f1214a4537317c.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/71c04f7340441d0e73f1214a4537317c.png)
步骤3: 创建演练
1. 自定义动作可以参与演练编排,在创建演练时选择创建空白演练,在演练对象配置步骤,选择添加演练动作,此时可以选择刚才的自定义动作。
![](https://qcloudimg.tencent-cloud.cn/image/document/a9889ea0dceef81a91ae771b48bbac1d.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/a9889ea0dceef81a91ae771b48bbac1d.png)
2. 选择完相应自定义动作后,还可以对其中的动态参数进行设置,如果不设置,则默认使用创建时的默认值。
![](https://qcloudimg.tencent-cloud.cn/image/document/12a9ae63c6776084affa7df81a143f88.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/12a9ae63c6776084affa7df81a143f88.png)
3. 自定义动作会下发到相应的 CVM 实例执行,如果选择多个实例,则可以做到脚本的批量并行下发执行。
![](https://qcloudimg.tencent-cloud.cn/image/document/9b9d05ad2486b1057c1953605df68878.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/9b9d05ad2486b1057c1953605df68878.png)
步骤4: 执行演练
演练编排完成后,单击执行演练,如果动作执行成功,说明脚本执行成功(返回码为0代表成功),可以登录到服务器进行验证。
![](https://qcloudimg.tencent-cloud.cn/image/document/b06bba9b0362a666836880aeca23b9c7.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/b06bba9b0362a666836880aeca23b9c7.png)