You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vagrant启用provision配置后执行reload命令启动超时报错排查

问题根因

  1. 你使用的ubuntu/trusty64是Ubuntu 14.04版本,早已停止官方维护,默认软件源已经下线,执行apt-get update时会持续尝试连接失效地址,长时间阻塞导致Vagrant的SSH连通性检测超时。
  2. 取消注释时若存在Vagrantfile语法缩进错误、执行vagrant reload未触发provision逻辑,也可能导致启动异常。
  3. 少数场景下shell provision会在虚拟机网络未完全就绪时就开始执行apt-get update,也会出现阻塞超时的情况。

解决方案

按以下顺序操作即可解决:

1. 替换失效的软件源(核心修复)

修改provision配置段,在执行apt操作前先替换为可用的Ubuntu 14.04镜像源,示例如下:

# Provision Settings 
config.vm.provision "shell", inline: <<-SHELL
  # 替换为适配14.04版本的可用镜像源
  cat > /etc/apt/sources.list << EOF
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty-security main restricted universe multiverse
EOF
  apt-get update
  apt-get install -y apache2
SHELL

2. 校验配置语法

执行vagrant validate命令检查Vagrantfile语法是否正确,确认没有缩进错误、符号不匹配的问题。

3. 调整超时配置与执行命令

如果替换源后仍有偶发超时,可以做两处调整:

  • 在Vagrantfile的configure块中添加config.vm.boot_timeout = 600,将启动超时时间延长到10分钟
  • 执行重载命令改为vagrant reload --provision,确保修改后的provision脚本正常触发执行

4. 替换基础镜像(可选优化)

如果没有强制使用Ubuntu 14.04的需求,建议将config.vm.box参数改为ubuntu/focal64(20.04 LTS)或ubuntu/jammy64(22.04 LTS)这类仍在官方维护周期内的镜像,无需修改源即可正常执行apt相关操作。

内容的提问来源于stack exchange,提问作者Ikenna9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:57:03