Назад | Перейти на главную страницу

Ошибка Vagrant: Тайм-аут соединения. Повторная попытка

У меня есть сервер с Ubuntu 12.04, Virtualbox 4.3 и Vagrant 1.5.1. Я пытаюсь использовать эту коробку http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210.box однако безуспешно. Когда я запускаю "vagrant up", я получаю следующее сообщение:

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos-64-x64-vbox4210'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: rafael_default_1396403974194_51967
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (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
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
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.

Это мой файл Vagrant

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # All Vagrant configuration is done here. The most common configuration
  # options are documented and commented below. For a complete reference,
  # please see the online documentation at vagrantup.com.

  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "centos-64-x64-vbox4210"
  config.vm.boot_timeout = 600
  # The url from where the 'config.vm.box' box will be fetched if it
  # doesn't already exist on the user's system.
  # config.vm.box_url = "http://domain.com/path/to/above.box"

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  # config.vm.network "forwarded_port", guest: 80, host: 8080

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  # config.vm.network "private_network", ip: "192.168.33.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  # config.vm.network "public_network"

  # If true, then any SSH connections made will enable agent forwarding.
  # Default value: false
  # config.ssh.forward_agent = true

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  # config.vm.synced_folder "../data", "/vagrant_data"
  # Enable provisioning with chef server, specifying the chef server URL,
  # and the path to the validation key (relative to this Vagrantfile).
  #
  # The Opscode Platform uses HTTPS. Substitute your organization for
  # ORGNAME in the URL and validation key.
  #
  # If you have your own Chef Server, use the appropriate URL, which may be
  # HTTP instead of HTTPS depending on your configuration. Also change the
  # validation key to validation.pem.
  #
  # config.vm.provision "chef_client" do |chef|
  #   chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"    
  #   chef.validation_key_path = "ORGNAME-validator.pem"
  # end
  #
  # If you're using the Opscode platform, your validator client is
  # ORGNAME-validator, replacing ORGNAME with your organization name.
  #
  # If you have your own Chef Server, the default validation client name is
  # chef-validator, unless you changed the configuration.
  #
  #   chef.validation_client_name = "ORGNAME-validator"
end

на моем сервере нет графического интерфейса. Как это исправить? Спасибо.

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

$ vagrant ssh-config

Пример:

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/konst/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

Документация по конфигурации Vagrant SSH

Во-вторых, сделайте: Изменить содержимое файла insecure_private_key с содержанием собственной системы закрытый ключ

Тайм-аут SSH-соединения на этапе загрузки может произойти по разным причинам, например:

  • система ожидает взаимодействия с пользователем (например, общий раздел не готов),
  • sshd неправильная конфигурация,
  • неправильная конфигурация межсетевого экрана (если он не локальный),
  • несоответствие вашего приватного ключа,
  • config.vm.boot_timeout период времени слишком мал (что у вас нормально),
  • убедитесь, что в BIOS включена виртуализация.

Чтобы устранить проблему, запустите ее как:

VAGRANT_LOG=debug vagrant up

Если ничего очевидного нет, попробуйте подключиться к нему с другого терминала, vagrant ssh или по:

vagrant ssh-config > vagrant-ssh; ssh -F vagrant-ssh default

Если SSH по-прежнему не работает, перезапустите его с помощью графический интерфейс (например. config.gui = true).

Если это не так, проверьте запущенные процессы (например, с помощью: vagrant ssh -c 'pstree -a') или подтвердите свой sshd_config.


Если это одноразовая ВМ, вы всегда можете destroy это и up это снова. Также подумайте об обновлении вашего Vagrant и Virtualbox.

попробуйте включить графический интерфейс виртуального окна, как указано в этом сообщении Тайм-аут зависшего соединения Vagrant и следуйте инструкциям в комментариях.

если это не сработает, попробуйте добавить эту модификацию в свой vagrantfile:

создайте файл с именем "script.sh", содержащий следующие команды:

mkdir /home/vagrant/.ssh
wget --no-check-certificate -O authorized_keys 'https://github.com/mitchellh/vagrant/raw/master/keys/vagrant.pub'
mv authorized_keys /home/vagrant/.ssh
chown -R vagrant /home/vagrant/.ssh
chmod -R go-rwsx /home/vagrant/.ssh

затем добавьте это в свой vagrantfile:

  # running script shell
    config.vm.provision :shell, :path => "script.sh"

config.vm.boot_timeout - Время в секундах, в течение которого Vagrant будет ждать, пока машина загрузится и станет доступной. По умолчанию это 300 секунд.

Я бы увеличил это значение до тех пор, пока вы не сможете бродить по SSH.

Попробуйте открыть порт 22 на брандмауэре.

Используя Oracle VM VirtualBox Manager, запустите виртуальную машину напрямую или

добавьте это в свой Vagrantfile

config.vm.provider :virtualbox do |vb|
  vb.gui = true
end

и запустить "бродяга"

войти, используя учетные данные бродяги по умолчанию

user: vagrant
pass: vagrant

добавить правило брандмауэра

sudo ufw allow 22

Я как раз решил похожую проблему.

Проблема: Команда для входа в гостевую среду разработки, vagrant ssh, время истекло. Обычно он отлично работает на другом хост-компьютере.

Шаги отладки:

  1. В Vagrantfile я включил графический интерфейс Virtualbox (как рекомендовано в другом ответе), чтобы узнать, что вызывает тайм-аут. Ubuntu запрашивал логин и пароль, чего не следовало делать, потому что вместо этого он должен был использовать ключ ssh.

  2. Вместо того, чтобы бегать vagrant ssh, Я много раз запускал эквивалентную команду ssh, добавляя и удаляя различные параметры ssh. Одно из сообщений об ошибке тайм-аута гласит: «Не удалось войти на [example.com]»… что не имеет смысла, потому что эта проблема не имеет ничего общего с [example.com].

  3. Это побудило меня взглянуть на .ssh / config, где [example.com] может иметь некоторое отношение.

Основная причина: В .ssh / config была запись без Host поставил, случайно. Следовательно, это правило конфигурации применялось к все ssh-вызовы, включая vagrant ssh (это просто ярлык для более длинной команды ssh).

Решение: Убедитесь, что в каждой записи .ssh / config есть Host устанавливать.

Попробуйте создать insecure_private_key

Я решил это, удалив insecure_private_key, расположенный под ~/.vagrant.d

возможно причина в insecure_private_key файл старый

У меня такая же проблема. Я удалил все из SystemPrefereces-> Security-> Firewall и удалил все службы из SystemPreferences-> Shared. Затем я снова включил удаленный вход. Это устранило проблему в моем случае. Если это не решит вашу проблему, вы можете посетить этот сайт и проверить его самостоятельно. (ServerFaqs)

У меня возникла аналогичная проблема. Вот что я сделал.

  • Включена виртуализация в BIOS
  • Ран ssh-add ~/.vagrant.d/insecure_private_key
  • Добавлено config.vm.boot_timeout = 600 к моему ~/Homestead/Vagrantfile

Теперь все работает нормально.

Вам нужно включить графический интерфейс. Удалите комментарий к этой строке в вашем Vagrant файл:

config.vm.provider :virtualbox do |vb|
  vb.gui = true
end

После того, как вам нужно выключить машину и начать снова:

vagrant halt
vagrant up

Как я исправил:

в vagrantfile включил / не комментировал нижеприведенное ...

config.vm.network "private_network", ip: "192.168.33.10"
...
config.vm.network "public_network"

Эта проблема может быть вызвана многими факторами, включая ситуацию, когда ящик виртуальной машины зависает в ожидании ответа от пользователя. Однако распространенной проблемой было несоответствие закрытого и открытого ключей. Чтобы решить эту проблему, вам необходимо предоставить файл закрытого ключа на вашем хост-компьютере, который соответствует файлу открытого ключа на виртуальной машине. Я разместил решение с 3 дополнительными подходами в нашем блоге здесь ...

http://www.productiveminds.com/blog/vagrant-ssh-authentication-how-to-successfully-login-into-vm-box-using-vagrant-up/

Это работает для меня:

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

https://github.com/mitchellh/vagrant/issues/391#issuecomment-2078383

У меня такая же проблема, и это мой первый опыт работы с бродягой.

Мне удалось «решить» проблему, использовав публичную сеть вместо частной.

config.vm.network "public_network", ip: "192.168.3.175"

Заменить 192.168.3.175 с IP-адресом, принадлежащим вашему классу сети.

Я бы хотел понять, что не так с частной сетью ...