38

vagrant up терпит неудачу, когда он попадает в часть ssh:

myterminal$ vagrant up
[default] VM already created. Booting if its not already running...
[default] Running any VM customizations...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- ssh: 22 => 2222 (adapter 1)
[default] -- db2: 30003 => 30003 (adapter 1)
[default] Cleaning previously set shared folders...
[default] Creating shared folders metadata...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

Затем, когда я впоследствии пытаюсь подключиться с помощью vagrant ssh или vagrant reload или подобного, я получаю это:

myterminal$ vagrant reload
[default] Attempting graceful shutdown of linux...
SSH connection was refused! This usually happens if the VM failed to
boot properly. Some steps to try to fix this: First, try reloading your
VM with `vagrant reload`, since a simple restart sometimes fixes things.
If that doesn't work, destroy your VM and recreate it with a `vagrant destroy`
followed by a `vagrant up`. If that doesn't work, contact a Vagrant
maintainer (support channels listed on the website) for more assistance.

Пожалуйста помоги! Я действительно в тупике.

С уважением,

Люк

18 ответов18

26

У меня была такая же проблема с коробкой, указанной в разделе "Начало работы" на сайте Vagrant. Мое решение ниже для коробки этого урока.

Я нахожу решение здесь: https://github.com/mitchellh/vagrant/issues/391

  1. в VagrantFile добавьте режим графического интерфейса : config.vm.boot_mode = :gui
  2. запустить vagrant up
  3. в графическом интерфейсе войдите с пользователем "vagrant" (пароль = "vagrant")
  4. В графическом интерфейсе запустите sudo /etc/init.d/networking restart, в файле /etc /network /interfaces, теперь у вас должен быть раздел с # VAGRANT-BEGIN [...]# Vagrant-END
  5. запустить vagrant reload на физическом компьютере
9

Я увидел эту проблему с моей настройкой и в итоге сузил ее до того факта, что добавил имя в файл локальных хостов. Итак, у меня было:

127.0.0.1 localhost myname myalias

Убрал myalias который я добавил, и все нормально загрузилось. Спасибо @saphirlazuli за подсказку, что это связано с сетью.

6

Для меня это непостоянная проблема, и определенно она связана с сетью. Я нашел более полезную информацию в выпусках Vagrant GitHub № 391 и № 455. Я попытался удалить мою неиспользуемую сеть только для хоста в настройках VirtualBox (как рекомендуется в качестве возможного исправления в одной из проблем GitHub), которая, похоже, не помогла.

Запуск в графическом режиме (как описано в предыдущем ответе) - отличный способ отладки / устранения проблем. Я обнаружил, что это потому, что по какой-то причине виртуальная машина не может получить IP-адрес при запуске. Запуск в режиме графического интерфейса пользователя, затем вход в систему (vagrant / vagrant) и запуск sudo dhclient в гостевой ОС приведет к получению IP-адреса, и процесс установки Vagrant завершится успешно.

Все еще ищу постоянное исправление, хотя.

Надеюсь это поможет!

[ИЗМЕНЕНО ДЛЯ ДОБАВЛЕНИЯ]: В GitHub Issue # 455 было добавлено полезное предложение, включающее добавление следующей конфигурации в ваш Vagrantfile:

config.ssh.max_tries = 150

В настоящее время это работает для меня, и, кажется, имеет смысл, поскольку проблема, по-видимому, связана с тайм-аутом - увеличение количества попыток должно увеличить вероятность успеха процесса SSH во времени. Во-первых, это периодически возникающая проблема, поэтому я на некоторое время оставлю за собой суждение, но скрестив пальцы, это сработает! Спасибо karel1980 за предложение исправить.

5

Если сбой vagrant up , я рекомендую следующее:

  1. Загрузка с режимом графического интерфейса : это помогает увидеть, не поврежден ли образ (или, например, что он делает перед запуском инициализации ), установите config.vm.boot_mode = :gui в вашем Vagrantfile
  2. Ведение журнала отладки : запустите подготовку с помощью debug, chef.log_level = :debug
  3. Перепакуйте коробку : иногда вам нужно что-то установить до того, как все остальное запустится - для начальной загрузки загрузчика. На самом деле это невозможно, поэтому проще всего загрузить виртуальную машину без какой-либо подготовки, установить все, что вам нужно, и заново упаковать коробку (vagrant box repackage foo , затем vagrant import foo и затем добавить foo в ваш Vagrantfile ).

Примечание: режим графического интерфейса может иметь другие проблемы, например, для меня не работает инициализация с 0.7.5 когда включен графический интерфейс . Хотя все еще здорово отлаживать реальную коробку.

2

Мой тип сетевой карты изначально был установлен на 82540EM . Я изменил его на Am79C973 и теперь Vagrant up работает каждый раз. Я запустил несколько виртуальных машин, даже перезагрузил хост, и он все еще работает.

Команда:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

Не забудьте упаковать и перечитать вашу коробку Vagrant.

Я использую Debian Squeeze 64-bit в качестве хоста и гостя, используя VirtualBox 4.1.16 на компьютере с Core i7-2600.

1

Моя гостевая коробка не загружалась должным образом из-за проблемы с диском.

Я заставил ВМ закрыться через

VBoxManage controlvm poweroff

Затем я изменил свой Vagrantfile в него следующую строку:

config.vm.boot_mode =:gui

Далее я перезапустил

бродячий до

В появившемся графическом интерфейсе мне пришлось запустить утилиту «Disk Fixer».

После запуска дисковой утилиты моя виртуальная машина была успешно загружена, и тогда я смог запустить vagrant ssh .

1

Я раскомментировал часть в Vagrantfile следующим образом:

  config.vm.provider :virtualbox do |vb|
    # Don't boot with headless mode
    vb.gui = true

    # Use VBoxManage to customize the VM. For example to change memory:
    # vb.customize ["modifyvm", :id, "--memory", "1024"]
  end

Я сохранил это, а затем я сделал

vagrant reload

и тогда все работало нормально. Я не уверен, почему это все-таки исправило.

1

У меня была такая же проблема. В моем случае 64-битная эмуляция не была включена. Включение этой функции в моем BIOS исправило проблему.

1

Если модуль ядра уже установлен, попробуйте запустить виртуальную машину напрямую с VirtualBox. Это покажет вам все ошибки запуска, встречающиеся при загрузке виртуальной машины. Такие проблемы, как ошибки файловой системы, будут мешать правильной работе демона сервера SSH.

1

У меня была такая же проблема на OSX (VirtualBox 4.1.0 и Vagrant 0.8.6), и для меня единственной помощью было:

  1. войти с помощью:gui по логину / пасс: vagrant / vagrant
  2. измените файл «/etc/rc.local», включив в него строку «sh /etc/init.d/networking restart» непосредственно перед «выходом 0».
  3. отключить: графический интерфейс
  4. Бродячая перезагрузка

Я нашел это по адресу: https://github.com/mitchellh/vagrant/issues/391 thx mikhailov.

0

Моя проблема была в том, что vagrant ssh вообще ничего не делал.

Я удалил ~/.ssh/config и проблема была решена. Скопируйте файл куда-нибудь или переименуйте его, если хотите сохранить.

0

Как и с другими, я использовал графический интерфейс (у меня всегда есть, чтобы предотвратить подобные проблемы)

config.vm.boot_mode = :gui

Затем я использовал меню VirtualBox, так как команды здесь не работали. Machine> Сброс в меню, тогда ssh был тогда возможен.

0

Вот еще одна возможная причина ошибки:

[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

Имя пользователя может быть указано в файле конфигурации следующим образом:

config.ssh.username = "badusername"

Если это имя пользователя не существует или не может войти в систему по какой-либо причине, ни вы, ни Vagrant не сможете подключиться к SSH по виртуальной машине. Таким образом, Vagrant "не сможет подключиться", даже если виртуальная машина действительно работает и работает правильно.

0

На windows 7 беги

vagrant ssh

если вы получите что-то вроде этого ...

`vagrant ssh` isn't available on the Windows platform. You are still able
to SSH into the virtual machine if you get a Windows SSH client (such as
PuTTY). The authentication information is shown below:

Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: U:/.vagrant.d/insecure_private_key

Тогда вы должны использовать что-то вроде этого ...

ssh vagrant@127.0.0.1 -p 2222 -i /cygdrive/u/.vagrant.d/insecure_private_key

Обратите внимание, что я использую Cygwin на моей Windows-коробке, а не Putty.

0

Введите sudo /etc/init.d/vboxdrv setup . Теперь должно работать.

0

Моя проблема была в том, что в

/etc/hosts

У меня была запись

127.0.1.1 lucid32

где имя моего ящика было lucidtest , я изменил вышеупомянутую строку на

127.0.1.1 lucidtest

и это сработало.

0

Это сообщение предполагает, что сервер ssh не работает на виртуальной машине. убедитесь, что он установлен

sudo apt-get install openssh-server

и работает

ssh localhost

не должно выдавать ошибку.

Чтобы исключить ошибки в vagrant, вы должны попробовать ssh напрямую в vm:

ssh vagrant @ localhost -p2222

(при условии перенаправления пользователя и порта по умолчанию)

0

Я закрыл работающую виртуальную машину и создал новую базу:

  1. Выключите ВМ, я пытаюсь экспортировать
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .