重新打包的 Vagrant (vbox) 框在后续导入后将不允许 ssh

重新打包的 Vagrant (vbox) 框在后续导入后将不允许 ssh

我正在经历以下情况。

如果我下载并运行一个基本盒子(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调整为您自己的路径)将包含您的相应文件Vagrantfilesome-box没有的额外信息。

我尝试过包含这个文件,但vagrant package --vagrantfile Vagrantfile_ubuntu没有成功 :/。我不知道如何修复这个问题,我相信 cloud-init 也与这一切混乱有关。

你找到什么了吗?

相关内容