我正在经历以下情况。
如果我下载并运行一个基本盒子(ubuntu/trusty64),做了一些修改(比如安装包),然后关闭并重新打包该盒子,则在后续导入时它将无法连接vagrant up
。
这是不是瞬时等待连接错误,这将永远挂起:
default: SSH address: 127.0.0.1:2200
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
default: Warning: Remote connection disconnect. Retrying...
工作流程是:
vagrant box add ubuntu/trusty64
vagrant init
# change config.vm.box in Vagrantfile to ubuntu/trusty64
vagrant up
vagrant ssh -c "sudo apt-get -y install git"
vagrant halt
vagrant package --output some-box.box
vagrant destroy
vagrant box add --name some-box ./some-box.box
# change config.vm.box in Vagrantfile to some-box
vagrant up
...这不起作用。
我怀疑这与 VirtualBox 网络以及我在打包之前需要捕获或重置的某种映射或值有关,但我不知道是什么。
答案1
我遇到了这个问题。对我来说,原来是盒子的版本设置为“Ubuntu(32 位)”。通过 VirtualBox GUI 在“设置/常规”下将其更改为“Ubuntu(64 位)”即可解决此问题。这似乎是盒子图像配置错误。
如果您不是这种情况,则启用 GUI 或通过 VirtualBox 界面启动框是调试挂起原因的最佳方法。例如,它也可能是引导加载程序在等待输入。
答案2
我也遇到了同样的问题ubuntu/trusty64
。我找到的解决方案按照以下步骤设置你的 eth1 卡:
/etc/network/interfaces.d/eth1.cfg
创建包含以下内容的文件。
auto eth1
iface eth1 inet dhcp
答案3
我认为我遇到了同样的问题。我设法发现您的问题实际上与vagrant package
不导出默认 ubuntu 框附带的一些ubuntu
“特殊/相关”有关。Vagrantfile
您可以看到此处的文件:(
~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-xenial64/20170116.1.0/virtualbox/Vagrantfile
调整为您自己的路径)将包含您的相应文件Vagrantfile
中some-box
没有的额外信息。
我尝试过包含这个文件,但vagrant package --vagrantfile Vagrantfile_ubuntu
没有成功 :/。我不知道如何修复这个问题,我相信 cloud-init 也与这一切混乱有关。
你找到什么了吗?