Vagrant ssh fallisce con VirtualBox


39

vagrant up fallisce quando si arriva alla 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.

Quindi, quando successivamente provo a connettermi usando Vagrant ssh o Vagrant Ricarica o simile, ottengo questo:

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.

Per favore aiuto! Sono davvero perplesso.

Cordiali saluti,

Luca

Risposte:


10

Ho visto questo problema con la mia installazione e alla fine l'ho ridotto al fatto che avevo aggiunto un nome al file hosts locale. Quindi ho avuto:

127.0.0.1 localhost myname myalias

Rimosso quello myaliasche avevo aggiunto e avviato bene. Grazie a @saphirlazuli per l'indizio che era collegato in rete.


Qual è la soluzione alternativa se voglio preservare le mialie?
Mickey Cheong,

Se vuoi usare un alias, il modo Debian / Ubuntu è di mantenere la prima riga come giusta 127.0.0.1 localhost, ma aggiungi una seconda riga con i tuoi alias, in questo modo:127.0.1.1 foo bar baz
CodeGnome

26

Ho avuto lo stesso problema con la casella indicata nel sito "Per iniziare" del sito Vagrant. La mia soluzione di seguito è per la scatola di questo tutorial.

Trovo una soluzione qui: https://github.com/mitchellh/vagrant/issues/391

  1. nel file Vagrant, aggiungi la modalità gui: config.vm.boot_mode = :gui
  2. correre vagrant up
  3. nella GUI, accedi con l'utente "vagrant" (password = "vagrant")
  4. int gui, esegui sudo /etc/init.d/networking restart, nel /etc/network/interfacesfile, ora devi avere una sezione con#VAGRANT-BEGIN [...]#VAGRANT-END
  5. eseguire vagrant reloadsulla macchina fisica

3
Questo ha funzionato per me, grazie. Avevo già eseguito Vagrant, quindi ha smesso di funzionare con una nuova scatola. Qualche idea su cosa lo causi?
Andrew Vit,

sudo /etc/init.d/networking restart ha funzionato per me, grazie!
Anatoly,

2
Ho riavviato, ma in / etc / network / interfaces non ho una sezione con # VAGRANT-BEGIN [...] # VAGRANT-END, qualche idea del perché? Posso aggiungerlo manualmente?
sparrovv,

1
RicevoThe following settings shouldn't exist: boot_mode
Calin

1
Nell'ultima versione devi inserire v.gui = true per la configurazione del provider
Calin

6

Questo è un problema intermittente per me e sembra sicuramente essere correlato alla rete. Ho trovato alcune informazioni più utili sui numeri # 391 e # 455 di Vagrant GitHub . Ho provato a eliminare la mia rete solo host inutilizzata nelle impostazioni di VirtualBox (come raccomandato come potenziale soluzione in uno dei problemi di GitHub) che non sembrava aiutare.

L'avvio in modalità gui (come descritto in una risposta precedente) è un ottimo modo per eseguire il debug / risolvere i problemi. Ho scoperto che è perché per qualsiasi motivo, la macchina virtuale non può ottenere un indirizzo IP all'avvio. Avvio in modalità GUI, quindi accesso (vagrant / vagrant) ed esecuzione sudo dhclientnel sistema operativo guest recupererebbe l'indirizzo IP e il processo di installazione di Vagrant si completerebbe correttamente.

Comunque sto ancora cercando una soluzione permanente.

Spero che sia di aiuto!

[MODIFICATO PER AGGIUNGERE]: Un suggerimento utile è stato aggiunto al numero 455 di GitHub che prevede l'aggiunta della seguente configurazione al tuo Vagrantfile:

config.ssh.max_tries = 150

Questo funziona attualmente per me e sembra avere senso poiché il problema sembra essere correlato al timeout: aumentare il numero di tentativi dovrebbe aumentare la probabilità che il processo SSH abbia successo nel tempo. In primo luogo è un problema intermittente, quindi mi riserverò un po 'di giudizio, ma incrociamo le dita funzionerà! Grazie a karel1980 per aver suggerito la correzione.


L'eliminazione della mia rete solo host non utilizzata nelle impostazioni di VirtualBox ha funzionato per me! Grazie!
Duke,

1
Sembra che questa impostazione sia stata privata a partire dalla 1.3.X - github.com/berkshelf/berkshelf/pull/856
Jeremy Hajek,

5

Se vagrant upfallisce, raccomando quanto segue:

  1. Avvio con modalità gui : questo aiuta a vedere se l'immagine è rotta (o ad es. Cosa fa prima dell'avvio del provisioning), impostare config.vm.boot_mode = :guinelVagrantfile
  2. Registrazione debug : esegui il provisioning con debug ,chef.log_level = :debug
  3. Reimballare la scatola : a volte è necessario installare qualcosa prima che tutto il resto funzioni - per avviare il bootstrapper. Questo non è davvero possibile, quindi il più semplice è avviare un VM senza alcun provisioning, installare tutto ciò di cui hai bisogno e reimballare la casella ( vagrant box repackage foo, vagrant import fooquindi aggiungere il footuo Vagrantfile)

Nota: la modalità gui può avere altri problemi, ad esempio per me nessun provisioning funziona con Vagrant 0.7.5quando la GUI è abilitata. Tuttavia, è comunque ottimo eseguire il debug della casella effettiva.


2

Il mio tipo di scheda di rete era originariamente impostato su 82540EM. L'ho cambiato in Am79C973e ora Vagrant up funziona ogni volta. Ho avviato più macchine virtuali, ho anche riavviato l'host e funziona ancora.

Il comando è:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

Ricorda di riconfezionare e leggere la tua scatola su Vagrant.

Sto eseguendo Debian Squeeze a 64 bit come host e guest, usando VirtualBox 4.1.16 su una macchina Core i7-2600.


1

Se il modulo del kernel è già installato, provare ad avviare la VM direttamente con VirtualBox. Questo mostrerà tutti gli errori di avvio rilevati all'avvio della VM. Problemi come errori del filesystem impediranno al demone del server SSH di funzionare correttamente.


1

Ho avuto lo stesso problema su osx (VirtualBox 4.1.0 e Vagrant 0.8.6) e per me l'unico aiuto era:

  1. accedi con: gui tramite login / pass: vagrant / vagrant
  2. modificare il file "/etc/rc.local" per includere la riga "sh /etc/init.d/networking restart" subito prima di "exit 0".
  3. disabilita: gui
  4. ricarica vagabonda

L'ho trovato su: https://github.com/mitchellh/vagrant/issues/391 thx mikhailov.


1

Ho avuto lo stesso problema. Nel mio caso l'emulazione a 64 bit non era abilitata. L'abilitazione di questa funzione nel mio BIOS ha risolto il problema.


1

La mia casella ospite non si avvia correttamente a causa di un problema con il disco.

Ho costretto la VM a chiudere tramite

VBoxManage controlvm poweroff

Quindi ho modificato il mio Vagrantfileper includere questa riga:

config.vm.boot_mode =: gui

Successivamente, ho eseguito di nuovo

vagabondo

Nella GUI che è spuntata, ho dovuto eseguire l'utility "disk fixer".

Dopo aver eseguito l'utilità del disco, la mia macchina virtuale è stata avviata correttamente e quindi ho potuto eseguire vagrant ssh.


1

Ho decommentato la parte nel Vagrantfile in questo modo:

  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

L'ho salvato e poi l'ho fatto

vagrant reload

e poi le cose hanno funzionato bene. Non sono sicuro del perché ciò abbia risolto il problema però.


0

Tipo sudo /etc/init.d/vboxdrv setup. Ora dovrebbe funzionare.


0

Il mio problema era che

/etc/hosts

Ho avuto l'entrata

127.0.1.1 lucid32

dove come il mio nome casella lucidtest, ho cambiato la riga sopra in

127.0.1.1 lucidtest

e ha funzionato.


0

Questo messaggio suggerisce che il server SSH non è in esecuzione sulla VM. assicurarsi che sia installato

sudo apt-get install openssh-server

e in esecuzione

ssh localhost

non dovrebbe dare un errore.

Per escludere errori in vagrant, dovresti provare ssh in vm direttamente da:

ssh vagrant @ localhost -p2222

(presupponendo l'utente predefinito e il port forwarding)


0

Su Windows 7 Run

vagrant ssh

se ottieni qualcosa del genere ...

`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

Quindi dovresti usare qualcosa del genere ...

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

Nota che sto usando Cygwin sulla mia finestra di Windows piuttosto che Putty.


OP non utilizza Windows 7.
Tanner Faulkner,

Grazie r.tanner.f - Non è stato specificato alcun sistema operativo, questo mi ha aiutato, spero che aiuti gli altri.
Artistan,

Non so perché sei stato sottovalutato, sembra che potrebbe aiutare altre persone
Mark,

0

Ecco un'altra possibile ragione dell'errore:

[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 nome utente può essere specificato nel file di configurazione in questo modo:

config.ssh.username = "badusername"

Se quel nome utente non esiste o non è possibile accedere per qualche motivo, né tu né Vagrant sarete in grado di accedere a SSH nella VM. Pertanto Vagrant "non riuscirà a connettersi", anche se la VM è effettivamente in esecuzione e funziona correttamente.


0

Il mio problema era che vagrant sshnon avrebbe fatto nulla.

Ho rimosso ~/.ssh/confige il problema è stato risolto. Copia il file da qualche parte o rinominalo se vuoi conservarlo.


sul sistema locale o remoto?
Jeremy Hajek,

0

Come con gli altri, ho usato la GUI (l'ho sempre attivata per prevenire problemi come questo)

config.vm.boot_mode = :gui

Ho quindi usato il menu VirtualBox, poiché i comandi qui non funzionavano. Macchina> Ripristina nel menu, quindi era possibile ssh.


0

Ho chiuso la VM in esecuzione e ho creato una nuova basebox:

  1. Chiudi VM Sto provando ad esportare
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.