Ansible Tower/AWX实例故障时作业执行行为及负载转移问询
Ansible Tower/AWX 作业执行故障场景行为说明
场景1:单实例部署环境
服务器总数100台,仅1个AWX/Tower实例
- Task3在8台服务器执行完成后实例故障
作业会直接中断,已完成的8台服务器上的Task3执行结果会被保留,但剩余92台的Task3及后续任务都不会继续执行,作业状态会标记为失败/中断。需要手动触发作业重试(可使用--start-at-task参数从Task3继续,或利用AWX的作业重试功能),不会自动恢复。 - Task3在8台服务器执行完成后CPU/内存达到峰值
实例资源耗尽会导致作业执行卡顿,严重时Ansible进程会被系统OOM Killer终止,作业最终失败。已完成的8台结果保留,剩余任务未执行,需排查资源瓶颈(比如调整forks值、优化剧本)后重新执行。
场景2:3实例集群部署环境
服务器总数100台,3个AWX/Tower实例组成集群
注意:AWX/Tower集群的多实例是用来并行处理多个不同作业,单个作业的所有任务只会由集群中的某一个实例完整执行,不会拆分负载到多个实例。forks参数控制的是单个实例同时处理的目标服务器数量,和集群实例数无关。
- Task3在8台服务器执行完成后某实例故障
如果故障的实例正好是当前作业的执行节点,作业会直接中断,已完成的8台结果保留,剩余任务停止,作业标记为失败。集群中其他存活实例不会自动接管这个未完成的作业,需要手动重试。如果故障的是其他未执行当前作业的实例,对当前作业无影响。 - Task3在8台服务器执行完成后CPU/内存达到峰值
若峰值出现在执行当前作业的实例上,结果和单实例场景一致:作业卡顿或失败,已完成部分保留,剩余任务未执行。若峰值出现在其他实例上,当前作业不受影响,会继续执行。
额外问题:forks=3时实例故障,负载会自动转移吗?
不会。forks=3仅表示执行作业的单个实例同时对3台目标服务器执行Task3,所有负载都集中在该实例上。当该实例故障时,作业直接中断,集群中其他实例不会自动接管剩余任务,必须手动重试作业。
内容的提问来源于stack exchange,提问作者Koushik Padmanaban
相关产品推荐
相关产品推荐

