Ansible ios_command在Cisco 3850执行show conf超时,如何设置更长超时?
解决Cisco 3850交换机上Ansible ios_command/ios_config超时问题
我来帮你搞定这个在Cisco 3850上执行show conf超时的问题!其实Ansible的ios_command和ios_config模块都支持自定义命令执行的超时时间,默认是10秒,对于配置较大的3850来说确实不够用,咱们只需要加个参数就能解决。
方法1:给单个任务单独设置超时
如果你只想给某一个ios_command任务调整超时,直接在任务里添加timeout参数即可,比如把超时设为30秒(你可以根据设备实际响应速度调整这个数值):
- name: RUN SHOW CONFIG ON IOS DEVICES ios_command: provider: "{{ provider }}" commands: "show conf" timeout: 30 # 单位为秒,设置你需要的超时时长
方法2:在provider中全局配置超时
如果你希望所有使用这个provider的模块(比如后续的ios_config任务)都统一用同一个超时时间,可以把timeout参数加到你定义的provider里,一次配置全局生效:
- name: DEFINE PROVIDER set_fact: provider: host: "{{ inventory_hostname }}" username: "{{ creds.username }}" password: "{{ creds.password }}" timeout: 30 # 所有调用该provider的模块都会继承这个超时设置
为什么3850会触发超时?
Cisco 3850作为堆叠式交换机,通常配置内容较多,执行show conf时设备需要遍历并生成完整的配置输出,这个过程比普通IOS设备耗时更长,默认10秒的超时阈值很容易触发失败,调大超时时间就能给设备足够的响应时间。
你可以先从30秒开始测试,如果还是超时,再逐步增加到60秒甚至更久,直到稳定执行为止。
内容的提问来源于stack exchange,提问作者RMD
相关产品推荐
相关产品推荐

