Vagrant ssh falha com o VirtualBox


39

O vagrant up falha quando chega à parte 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.

Então, quando subsequentemente tento conectar usando vagrant ssh ou vagrant reload ou similar, recebo o seguinte:

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.

Por favor ajude! Estou realmente perplexo.

Atenciosamente,

Luke

Respostas:


10

Eu vi esse problema com minha instalação e, finalmente, o reduzi ao fato de eu ter adicionado um nome ao arquivo de hosts locais. Então eu tive:

127.0.0.1 localhost myname myalias

Removido o myaliasque eu adicionei e ele inicializou bem. Obrigado a @saphirlazuli pela pista de que estava relacionado à rede.


Qual é a solução alternativa se eu quiser preservar mialias?
Mickey Cheong

Se você quiser usar um apelido, a maneira Debian / Ubuntu é manter a primeira linha como apenas 127.0.0.1 localhost, mas adicionar uma segunda linha com os seus aliases, assim:127.0.1.1 foo bar baz
CodeGnome

26

Eu tive o mesmo problema com a caixa fornecida no site "Introdução" do Vagrant. Minha solução abaixo é para a caixa deste tutorial.

Eu encontro uma solução aqui: https://github.com/mitchellh/vagrant/issues/391

  1. no VagrantFile, adicione o modo GUI: config.vm.boot_mode = :gui
  2. corre vagrant up
  3. na GUI, faça logon com o usuário "vagrant" (senha = "vagrant")
  4. int o gui, execute sudo /etc/init.d/networking restart, no /etc/network/interfacesarquivo, agora você deve ter uma seção com#VAGRANT-BEGIN [...]#VAGRANT-END
  5. executar vagrant reloadna máquina física

3
Isso funcionou para mim, obrigado. Eu tinha o Vagrant rodando antes, então ele parou de funcionar com uma nova caixa. Alguma idéia do que causa isso?
Andrew Vit 02/07

sudo /etc/init.d/networking restart está funcionando para mim, obrigado!
Anatoly

2
Reiniciei, mas em / etc / network / interfaces não tenho seção com # VAGRANT-BEGIN [...] # VAGRANT-END, alguma pista por que? Posso adicioná-lo manualmente?
Sparrovv 07/10/11

1
ReceboThe following settings shouldn't exist: boot_mode
Calin

1
Ficou na versão mais recente você tem que colocar v.gui = true para a configuração do provedor
Calin

6

Este é um problema intermitente para mim e definitivamente parece estar relacionado à rede. Encontrei informações mais úteis nas edições 391 e 455 do Vagrant GitHub . Tentei excluir minha rede somente de host não utilizada nas configurações do VirtualBox (como recomendado como uma possível correção em um dos problemas do GitHub), o que não pareceu ajudar.

Iniciar no modo GUI (como descrito em uma resposta anterior) é uma ótima maneira de depurar / corrigir problemas. Descobri que é porque, por qualquer motivo, a VM não pode obter um endereço IP na inicialização. Iniciar no modo GUI e depois efetuar login (vagrant / vagrant) e executar sudo dhclientno sistema operacional convidado recuperaria o endereço IP e o processo de instalação do Vagrant seria concluído com êxito.

Ainda estou procurando uma solução permanente.

Espero que isto ajude!

[EDITADO PARA ADICIONAR]: Uma sugestão útil foi adicionada à Edição 455 do GitHub, que envolve a adição da seguinte configuração ao seu Vagrantfile:

config.ssh.max_tries = 150

No momento, isso está funcionando para mim e parece fazer sentido, pois o problema parece estar relacionado ao tempo limite - aumentar o número de tentativas deve aumentar a probabilidade de o processo SSH ser bem-sucedido. É uma questão intermitente em primeiro lugar, por isso vou reservar um tempo, mas os dedos cruzados funcionarão! Obrigado a karel1980 por sugerir a correção.


A exclusão de minha rede somente de host não utilizada nas configurações do VirtualBox funcionou para mim! Obrigado!
Duke

1
Parece que essa configuração foi desaprovada a partir do 1.3.X - github.com/berkshelf/berkshelf/pull/856
Jeremy Hajek

5

Se vagrant upfalhar, recomendo o seguinte:

  1. Inicializar com o modo GUI : ajuda a ver se a imagem está quebrada (ou, por exemplo, o que ela faz antes do início do provisionamento), definida config.vm.boot_mode = :guinoVagrantfile
  2. Registro de depuração : execute o provisionamento com depuração ,chef.log_level = :debug
  3. Reembale a caixa : às vezes você precisa instalar algo antes que tudo o mais seja executado - para inicializar o bootstrapper. Isso não é realmente possível, de modo que o mais fácil é para iniciar uma VM sem qualquer provisionamento, instalar tudo o que você precisa e re-embalar a caixa ( vagrant box repackage fooe depois vagrant import fooe depois adicionar fooem sua Vagrantfile)

Nota: o modo GUI pode ter outros problemas, por exemplo, para mim, nenhum provisionamento funciona com o vagrant 0.7.5quando o GUI está ativado. Ainda é ótimo depurar a caixa atual.


2

Meu tipo de placa de rede foi originalmente definido como 82540EM. Eu mudei para Am79C973e agora o Vagrant funciona sempre. Eu iniciei várias VMs, até reiniciei o host e ainda funciona.

O comando é:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

Lembre-se de reembalar e ler sua caixa para o Vagrant.

Estou executando o Debian Squeeze de 64 bits como host e convidados, usando o VirtualBox 4.1.16 em uma máquina Core i7-2600.


1

Se o módulo do kernel já estiver instalado, tente iniciar a VM diretamente com o VirtualBox. Isso mostra todos os erros de inicialização encontrados quando a VM é inicializada. Problemas como erros no sistema de arquivos impedirão que o daemon do servidor SSH funcione corretamente.


1

Eu tive o mesmo problema no osx (VirtualBox 4.1.0 e Vagrant 0.8.6), e para mim a única ajuda foi:

  1. faça login com: gui por login / pass: vagrant / vagrant
  2. modifique o arquivo "/etc/rc.local" para incluir a linha "sh /etc/init.d/networking restart" imediatamente antes de "exit 0".
  3. disable: gui
  4. recarga de vagabundo

Encontrei isso em: https://github.com/mitchellh/vagrant/issues/391 thx mikhailov.


1

Eu tenho esse mesmo problema. No meu caso, a emulação de 64 bits não estava ativada. A ativação desse recurso na minha bios corrigiu o problema.


1

Minha caixa de convidados não inicializou corretamente devido a um problema no disco.

Forcei a VM a fechar via

VBoxManage desligamento do controlvm

Então eu modifiquei meu Vagrantfilepara incluir esta linha:

config.vm.boot_mode =: gui

Em seguida, corri novamente

vagar

Na GUI exibida, eu tive que executar o utilitário 'fixador de disco'.

Depois de executar o utilitário de disco, minha VM foi inicializada com êxito e então eu pude executar vagrant ssh.


1

Eu descomentei a parte no arquivo Vagrant assim:

  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

Eu salvei e então eu fiz

vagrant reload

e então as coisas funcionaram bem. Não sei por que isso foi corrigido.


0

Digite sudo /etc/init.d/vboxdrv setup. Agora deve funcionar.


0

Meu problema era que em

/etc/hosts

Eu tive entrada

127.0.1.1 lucid32

onde estava o nome da minha caixa lucidtest, alterei a linha acima para

127.0.1.1 lucidtest

e funcionou.


0

Esta mensagem sugere que o servidor ssh não está sendo executado na VM. verifique se está instalado

sudo apt-get install openssh-server

e correndo

ssh localhost

não deve dar um erro.

Para excluir erros no vagrant, tente o ssh diretamente no vm:

ssh vagrant @ localhost -p2222

(assumindo o usuário padrão e o encaminhamento de porta)


0

No Windows 7, execute

vagrant ssh

se você receber algo assim ...

`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

Então você deve usar algo como isto ...

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

Observe que estou usando o cygwin na caixa do meu windows em vez do Putty.


OP não está usando o Windows 7.
Tanner Faulkner

Obrigado r.tanner.f - Nenhum sistema operacional foi especificado, isso me ajudou, espero que ajude outras pessoas.
Artistan

Não sei por que você estava downvoted, este parece que poderia ajudar outras pessoas
Mark

0

Aqui está outro motivo possível para o erro:

[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.

Um nome de usuário pode ser especificado no arquivo de configuração assim:

config.ssh.username = "badusername"

Se esse nome de usuário não existir ou não puder ser conectado por algum motivo, nem você nem o Vagrant poderão fazer o SSH na VM. Portanto, o Vagrant "falhará na conexão", mesmo que a VM esteja realmente executando e funcionando corretamente.


0

Meu problema era que vagrant sshnão faria nada.

Eu removi ~/.ssh/confige o problema foi resolvido. Copie o arquivo em algum lugar ou renomeie-o, se desejar mantê-lo.


no sistema local ou remoto?
Jeremy Hajek

0

Como com outras pessoas, eu usei a GUI (eu sempre a uso para evitar problemas como esse)

config.vm.boot_mode = :gui

Eu então usei o menu VirtualBox, pois os comandos aqui não funcionavam. Máquina> Redefinir no menu, então o ssh era possível.


0

Desliguei a vm em execução e criei uma nova caixa de base:

  1. Encerre a VM que estou tentando exportar
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.