Vagrant ssh échoue avec VirtualBox


39

vagrant up échoue quand il arrive à la partie 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.

Puis, lorsque j'essaie par la suite de connecter en utilisant ssh vagrant ou vagabond ou similaire, je reçois ceci:

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.

S'il vous plaît aider! Je suis vraiment perplexe.

Sincères amitiés,

Luke

Réponses:


10

J'ai vu ce problème avec ma configuration et je l'ai finalement réduit au fait que j'avais ajouté un nom au fichier des hôtes locaux. Alors j'ai eu:

127.0.0.1 localhost myname myalias

Supprimé le myaliasque j'avais ajouté et il a démarré bien. Merci à @saphirlazuli pour l’indication que c’était lié au réseau.


Quelle est la solution de contournement si je veux préserver myalias?
Mickey Cheong

Si vous voulez utiliser un alias, la méthode Debian / Ubuntu consiste à conserver la première ligne comme il se doit 127.0.0.1 localhost, tout en ajoutant une deuxième ligne avec vos alias, comme 127.0.1.1 foo bar baz
suit

26

J'ai eu le même problème avec la boîte donnée dans le site "Mise en route" de Vagrant. Ma solution ci-dessous est pour la boîte de ce tutoriel.

Je trouve une solution ici: https://github.com/mitchellh/vagrant/issues/391

  1. dans VagrantFile, ajoutez le mode gui: config.vm.boot_mode = :gui
  2. courir vagrant up
  3. dans l'interface graphique, connectez-vous avec l'utilisateur "vagrant" (password = "vagrant")
  4. int le gui, exécutez sudo /etc/init.d/networking restart, dans le /etc/network/interfacesdossier, vous devez maintenant avoir une section avec#VAGRANT-BEGIN [...]#VAGRANT-END
  5. courir vagrant reloadsur la machine physique

3
Cela a fonctionné pour moi, merci. Vagrant fonctionnait auparavant, puis il a cessé de fonctionner avec une nouvelle boîte. Une idée de ce qui le cause?
Andrew Vit

sudo /etc/init.d/networking restart est travaillé pour moi, merci!
Anatoly

2
J'ai redémarré, mais dans / etc / network / interfaces, je n'ai pas de section avec # VAGRANT-BEGIN [...] # VAGRANT-END, pourquoi? Puis-je l'ajouter manuellement?
sparrovv

1
Je reçoisThe following settings shouldn't exist: boot_mode
Calin

1
Dans la dernière version, vous devez mettre v.gui = true pour la configuration du fournisseur
Calin

6

Pour moi, il s’agit d’un problème intermittent qui semble clairement lié au réseautage. J'ai trouvé des informations plus utiles dans les numéros 391 et 455 de Vagrant GitHub . J'ai essayé de supprimer mon réseau uniquement hôte inutilisé dans les paramètres de VirtualBox (recommandé comme solution potentielle à l'un des problèmes de GitHub), ce qui n'a pas semblé aider.

Démarrer en mode interface graphique (comme décrit dans une réponse précédente) est un excellent moyen de déboguer / résoudre les problèmes. J'ai constaté que c'est parce que, pour une raison quelconque, la machine virtuelle ne peut pas obtenir une adresse IP au démarrage. Démarrer en mode graphique puis se connecter (vagabond / vagabond) et s'exécuter sudo dhclientdans le système d'exploitation invité extrairait l'adresse IP et le processus de configuration de Vagrant se terminerait avec succès.

Toujours à la recherche d'une solution permanente cependant.

J'espère que cela t'aides!

[MODIFIÉ POUR AJOUTER]: Une suggestion utile a été ajoutée au numéro 455 de GitHub, qui consiste à ajouter la configuration suivante à votre Vagrantfile:

config.ssh.max_tries = 150

Cela fonctionne actuellement pour moi, et semble logique puisque le problème semble être lié au timeout - augmenter le nombre d'essais devrait augmenter la probabilité de réussite du processus SSH. C'est une question intermittente en premier lieu donc je vais réserver mon jugement pour un moment, mais les doigts croisés ça marchera! Merci à karel1980 pour avoir suggéré le correctif.


La suppression de mon réseau uniquement hôte inutilisé dans les paramètres de VirtualBox a fonctionné pour moi! Merci!
Duke

1
Il semble que ce paramètre ait été supprimé à partir du 1.3.X - github.com/berkshelf/berkshelf/pull/856
Jeremy Hajek

5

Si vagrant upéchoue, je recommande ce qui suit:

  1. Boot with gui mode : cela permet de voir si l’image est cassée (ou ce qu’elle fait avant le démarrage du provisioning), définie config.vm.boot_mode = :guidans votreVagrantfile
  2. Journalisation de débogage : lancez le provisioning avec debug ,chef.log_level = :debug
  3. Reconditionnez la boîte : parfois, vous devez installer quelque chose avant que tout le reste soit exécuté - pour amorcer le programme d'amorçage. Ce n'est pas vraiment possible, donc le plus simple est de démarrer une machine virtuelle sans approvisionnement, installez tout ce que vous avez besoin et reconditionner la boîte ( vagrant box repackage foopuis vagrant import foopuis ajoutez foodans votre Vagrantfile)

Remarque: le mode interface graphique peut avoir d'autres problèmes, par exemple, pour moi, le provisioning ne fonctionne pas avec vagrant 0.7.5lorsque l'interface graphique est activée. C'est quand même bien de déboguer la boîte réelle.


2

Mon type de carte réseau a été initialement défini sur 82540EM. Je l'ai changé Am79C973et maintenant Vagrant up fonctionne à chaque fois. J'ai démarré plusieurs machines virtuelles, j'ai même redémarré l'hôte et cela fonctionne toujours.

La commande est:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

N'oubliez pas de reconditionner et de remettre votre boîte à Vagrant.

J'utilise Debian Squeeze 64 bits en tant qu'hôte et invités, à l'aide de VirtualBox 4.1.16 sur un ordinateur Core i7-2600.


1

Si le module de noyau est déjà installé, essayez de démarrer la machine virtuelle directement avec VirtualBox. Cela vous montrera toutes les erreurs de démarrage rencontrées lors du démarrage de la VM. Des problèmes tels que des erreurs de système de fichiers empêcheront le démon de serveur SSH de fonctionner correctement.


1

J'ai eu le même problème sur osx (VirtualBox 4.1.0 et Vagrant 0.8.6), et pour moi la seule aide était de:

  1. se connecter avec: gui par login / pass: vagrant / vagrant
  2. modifiez le fichier “/etc/rc.local” pour inclure la ligne “sh /etc/init.d/networking restart” juste avant “exit 0”.
  3. désactiver: gui
  4. rechargement vagabond

J'ai trouvé ceci à: https://github.com/mitchellh/vagrant/issues/391 thx mikhailov.


1

J'ai eu le même problème. Dans mon cas, l'émulation 64 bits n'était pas activée. L'activation de cette fonctionnalité dans mon bios a résolu le problème.


1

Ma boîte d’invités ne pourrait pas démarrer correctement en raison d’un problème de disque.

J'ai forcé la VM à fermer via

VBoxManage controlvm poweroff

Puis j'ai modifié ma Vagrantfilepour inclure cette ligne:

config.vm.boot_mode =: gui

Ensuite, j'ai re-couru

vagabond

Dans l'interface graphique qui est apparue, je devais exécuter l'utilitaire de «réparation de disque».

Après avoir exécuté l'utilitaire de disque, ma machine virtuelle a été démarrée avec succès, puis j'ai pu être exécutée vagrant ssh.


1

J'ai décommenté la partie dans Vagrantfile comme ceci:

  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

Je l'ai sauvé et puis j'ai fait

vagrant reload

et puis les choses ont bien fonctionné. Je ne sais pas pourquoi cela a résolu le problème.


0

Tapez sudo /etc/init.d/vboxdrv setup. Cela devrait maintenant fonctionner.


0

Mon problème était que dans

/etc/hosts

J'avais entrée

127.0.1.1 lucid32

où mon nom de boîte était lucidtest , j'ai changé la ligne ci-dessus à

127.0.1.1 lucidtest

et cela a fonctionné.


0

Ce message suggère que le serveur ssh n'est pas en cours d'exécution sur la machine virtuelle. assurez-vous qu'il est installé

sudo apt-get install openssh-server

et courir

ssh localhost

ne devrait pas donner une erreur.

Pour exclure les erreurs dans vagrant, vous devriez essayer ssh directement dans vm en:

ssh vagrant @ localhost -p2222

(en supposant que l'utilisateur et le transfert de port par défaut)


0

Sur Windows 7 courir

vagrant ssh

si vous obtenez quelque chose comme ça ...

`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

Ensuite, vous devriez utiliser quelque chose comme ça ...

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

Remarquez que j'utilise cygwin sur ma fenêtre Windows plutôt que sur Putty.


OP n'utilise pas Windows 7.
Tanner Faulkner

Merci r.tanner.f - Aucun système d’exploitation n’a été spécifié, cela m’a aidé et, espérons-le, aidé les autres.
Artistan

Je ne sais pas pourquoi vous avez été voté, cela semble pouvoir aider d'autres personnes
Mark

0

Voici une autre raison possible de l'erreur:

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

Un nom d'utilisateur peut être spécifié dans le fichier de configuration comme ceci:

config.ssh.username = "badusername"

Si ce nom d'utilisateur n'existe pas ou ne peut pas être connecté pour une raison quelconque, ni vous ni Vagrant ne pourrez SSH dans la VM. Ainsi, Vagrant "échouera à se connecter", même si la VM est en fait en cours d'exécution et fonctionne correctement.


0

Mon problème était que vagrant sshcela ne ferait rien du tout.

J'ai enlevé ~/.ssh/configet le problème a été résolu. Copiez le fichier quelque part ou renommez-le si vous souhaitez le conserver.


sur un système local ou distant?
Jeremy Hajek

0

Comme avec d'autres, j'ai utilisé l'interface graphique (j'ai toujours cette fonction pour éviter des problèmes comme celui-ci)

config.vm.boot_mode = :gui

J'ai ensuite utilisé le menu VirtualBox, car les commandes ici ne fonctionnaient pas. Machine> Réinitialiser dans le menu, ssh était alors possible.


0

J'ai arrêté la machine virtuelle en cours d'exécution et créé une nouvelle basebox:

  1. Arrêtez la VM que j'essaie d'exporter
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.