В предисловии я понимаю, что это распространенное сообщение об ошибке с несколькими различными причинами и решениями, но ничего из того, что я нашел, пока не сработало. У меня есть Vagrant 2.1.5 с Virtualbox 5.2.18, работающий на Windows 10.
Я тестировал Vagrant с очень простым Vagrantfile:
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
end
Запуск vagrant up
затем дает типичную ошибку «Время ожидания загрузки машины истекло»:
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos/7'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'centos/7' is up to date...
==> default: Setting the name of the VM: vargrantTest_default_1537805339381_15444
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.
If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.
If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.
If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.
Что я пробовал:
- Убедитесь, что виртуализация включена в BIOS
- Увеличение времени ожидания загрузки в vagrantfile
- Проверка правильности сетевых настроек виртуальных машин в Virtualbox (адаптер NAT с подключенным кабелем)
- Использование
vb.gui = true
для наблюдения за загрузкой виртуальной машины. Он загружается нормально и ждет на экране входа в систему. - Использование флага --debug для vagrant up. Это не дает каких-либо очевидных ошибок, которые я обнаружил, хотя до истечения времени ожидания он запускается
VBoxManage showvminfo --machinereadable
несколько сотен раз, в результате чего файл журнала содержит более 80 тысяч строк.
Как и некоторые другие вещи, которые я забыл написать. У меня нет идей, и я совершенно новичок в Vagrant, поэтому я действительно не знаю, каков следующий шаг по устранению этой проблемы. Любая помощь будет оценена по достоинству.
Редактировать: не уверен, почему я не додумался сделать это сам, но Марко подал мне идею попробовать подключиться по ssh напрямую к виртуальной машине. Я попытался сделать это, используя файл ключа в «/.vagrant.d/insecure_private_key», созданный Vagrant, но время ожидания истекло. Затем я попытался просто пропинговать виртуальную машину, но это дает, казалось бы, случайное сочетание «время ожидания запроса истекло» и «целевой хост недоступен», так что, вероятно, где-то есть более серьезная проблема с сетью (моя машина, виртуальная машина или Virtualbox). м не в курсе.