如何延长Ansible中aireos_command命令的执行时长至5分钟以捕获日志
实现方法
方案1:使用aireos_command内置超时机制
通过配置wait_for匹配一个不可能出现的字符串,同时设置超时时间为300秒,让模块持续收集debug输出直到超时,自动返回5分钟内的所有日志内容:
- name: 'TASK 1: 5分钟客户端debug采集' aireos_command: commands: - 'debug client <mac address>' wait_for: - "result contains NEVER_EXIST_FLAG" match: all retries: 1 timeout: 300 register: debug
核心参数说明:
wait_for配置的是永远不会出现在debug输出中的标识,模块会持续等待匹配直到超时timeout: 300定义最长等待时间为5分钟,超时后模块会将这段时间收集到的所有输出存入register的变量中
方案2:多任务拆分实现可控采集
如果担心超时逻辑不稳定,也可以拆分任务实现,同时避免忘记关闭debug导致设备负载过高:
# 开启debug - name: 开启客户端debug aireos_command: commands: - 'debug client <mac address>' # 等待5分钟采集日志 - name: 等待5分钟日志收集 ansible.builtin.pause: seconds: 300 # 关闭debug同时拉取缓存日志 - name: 关闭debug并导出日志 aireos_command: commands: - 'no debug client <mac address>' - 'show logging buffer' register: debug
注意事项
- 操作前确认目标WLC的性能余量,避免debug产生的大量日志导致设备负载异常
- 所有采集完成后必须执行关闭debug的命令,避免资源持续占用
内容的提问来源于stack exchange,提问作者kaizen
相关产品推荐
相关产品推荐

