使用Ansible向ESXi部署大尺寸OVF出现写入超时如何解决
故障根因
该报错由大文件传输场景下默认请求超时阈值不足触发:community.vmware.vmware_deploy_ovf模块底层依赖urllib发送HTTP请求与ESXi通信,默认超时时间仅30秒,传输2.3GB级别的OVF及关联磁盘文件时,传输时长超过默认阈值就会触发写入超时中断。
配置调整方案
- 显式配置长超时阈值
在模块参数中添加timeout字段,单位为秒,结合常规千兆管理网带宽,2.3GB文件设置12001800秒(2030分钟)即可覆盖全量传输+部署写入的耗时,可根据实际链路带宽上下调整。 - 绕过代理直连ESXi
如果执行Ansible的主机配置了全局HTTP/HTTPS代理,urllib会默认将发往ESXi的请求转发到代理,大幅拉长传输路径增加耗时,需要在任务级别配置环境变量,将ESXi管理IP加入直连名单。 - 可选优化:使用精简置备减少写入量
无特殊厚置备要求时,添加disk_provision: thin参数,部署时直接使用精简置备格式,跳过全量磁盘空间置零的步骤,能明显缩短部署阶段的写入耗时,降低超时概率。
调整后可用的Playbook示例
- hosts: localhost tasks: - community.vmware.vmware_deploy_ovf: hostname: "192.168.15.1" username: "root" password: "P@55w0rd" datastore: "datastore1" name: "NewVM" power_on: no ovf: /home/user/ubuntu-16.04-amd64.ovf timeout: 1800 disk_provision: thin delegate_to: localhost environment: no_proxy: "192.168.15.1"
如果调整后仍出现超时,可先在Ansible主机上用scp向ESXi传输测试文件,确认管理链路没有丢包、带宽没有被其他流量占满。
内容的提问来源于stack exchange,提问作者webdepartment webdepartment
相关产品推荐
相关产品推荐

