web-dev-qa-db-ja.com

Vagrant sshがVirtualBoxで失敗する

ssh部分に到達するとvagrant upが失敗します。

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.

助けてください!私は本当に困惑しています。

敬具、

ルーク

39
lukewm

私はこのセットアップでこの問題を確認し、最終的に、ローカルのhostsファイルに名前を追加したという事実に絞り込みました。だから私は持っていました:

127.0.0.1 localhost myname myalias

追加したmyaliasを削除し、正常に起動しました。ネットワーク関連の手がかりを@saphirlazuliに感謝します。

10
Mark Cheverton

Vagrantサイトの「はじめに」にあるボックスで同じ問題が発生しました。以下の私の解決策は、このチュートリアルのボックス用です。

私はここで解決策を見つけます: https://github.com/mitchellh/vagrant/issues/391

  1. vagrantFileに、guiモードを追加します:config.vm.boot_mode = :gui
  2. 実行vagrant up
  3. gUIで、ユーザー「vagrant」を使用してログインします(パスワード=「vagrant」)
  4. gUIのint、実行Sudo /etc/init.d/networking restart/etc/network/interfacesファイル、#VAGRANT-BEGIN [...]#VAGRANT-END
  5. 実行vagrant reload物理マシン上
26
saphirlazuli

これは私にとって断続的な問題で、間違いなくネットワークに関連しているようです。 Vagrant GitHubの問題 #391 および #455 でさらに役立つ情報を見つけました。 VirtualBox設定で未使用のホストオンリーネットワークを削除しようとしましたが(GitHubの問題の潜在的な修正として推奨されています)、役に立たないようです。

(前の回答で説明したように)GUIモードで開始することは、問題をデバッグ/修正するための優れた方法です。何らかの理由でVMは起動時にIPアドレスを取得できないためです。GUIモードで起動し、ログインして(vagrant/vagrant)、ゲストでSudo dhclientを実行していることが原因であることがわかりましたOSがIPアドレスを取得し、Vagrantセットアッププロセスが正常に完了します。

まだ永久的な修正を探しています。

お役に立てれば!

[編集に追加]: GitHub Issue#455 に役立つ提案が追加されました。これには、Vagrantfileに次の構成を追加することが含まれます。

config.ssh.max_tries = 150

これは現在私のために働いており、問題はタイムアウトに関連しているように見えるので理にかなっているようです-試行回数を増やすと、SSHプロセスが時間内に成功する確率が高くなります。そもそも断続的な問題なので、しばらく判決は控えておきますが、指を組んでうまくいきます!修正を提案してくれたkarel1980に感謝します。

6
Dawngerpony

vagrant upが失敗した場合は、以下をお勧めします。

  1. GUIモードで起動:これは、イメージが壊れていないかどうか(または、プロビジョニングが開始される前のイメージなど)を確認するのに役立ちます。Vagrantfileconfig.vm.boot_mode = :guiを設定します
  2. デバッグログdebugchef.log_level = :debugを使用してプロビジョニングを実行します
  3. ボックスを再パッケージ化:場合によっては、他のすべてが実行される前に何かをインストールする必要があります-bootstrapブートストラッパー。これは実際には不可能なので、最も簡単な方法は任意のプロビジョニング、必要なものをインストールしてボックスを再パッケージします(vagrant box repackage foo、次にvagrant import foo、次にfooVagrantfileに追加します)

注:GUIモードには他の問題がある可能性があります。 GUIが有効になっている場合、私にとってvagrant 0.7.5でプロビジョニングは機能しません。ただし、実際のボックスをデバッグするのは素晴らしいことです。

5
Till

ネットワークカードの種類は、元々82540EMに設定されていました。私はそれをAm79C973に変更し、今度はVagrant upが毎回機能するようになりました。複数のVMを起動し、ホストを再起動しても動作します。

コマンドは次のとおりです。

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

箱を再パッケージして、Vagrantに読み取ってください。

Core i7-2600マシンでVirtualBox 4.1.16を使用して、ホストおよびゲストとしてDebian Squeeze 64ビットを実行しています。

2
Simon Celen

ディスクの問題により、ゲストボックスが正しく起動しませんでした。

VMを経由して閉じるように強制しました

VBoxManage controlvm poweroff

次に、Vagrantfileを次の行を含むように変更しました。

config.vm.boot_mode =:gui

次に、再実行しました

浮浪者

ポップアップしたGUIで、「ディスクフィクサー」ユーティリティを実行する必要がありました。

ディスクユーティリティを実行した後、my VMが正常に起動し、vagrant ssh

1
Kevin Meredith

私は次のように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
Pavan Katepalli

私も同じ問題を抱えていました。私の場合、64ビットエミュレーションが有効になっていませんでした。私のBIOSでこの機能を有効にすると、問題が解決しました。

1
diedthreetimes

カーネルモジュールが既にインストールされている場合は、VMをVirtualBoxで直接起動してみてください。これにより、VMの起動時に発生した起動エラーが表示されます。ファイルシステムのような問題エラーが発生すると、SSHサーバーデーモンが正しく動作しなくなります。

1
Sasha

私はosx(​​VirtualBox 4.1.0およびVagrant 0.8.6)でも同じ問題を抱えていました。私にとって唯一の助けは、

  1. :guiを使用してログイン/パス:vagrant/vagrantでログイン
  2. 「/etc/rc.local」ファイルを変更して、「exit 0」の直前に「sh /etc/init.d/networking restart」という行を含めます。
  3. disable:gui
  4. 浮浪者リロード

私はこれを https://github.com/mitchellh/vagrant/issues/391 thx mikhailovで見つけました。

1
sparrovv

私の問題はそれでしたvagrant sshは何もしません。

私は削除しました ~/.ssh/configそして問題は解決されました。ファイルをどこかにコピーするか、保持したい場合は名前を変更してください。

0
zMan

他の人と同様に、私はGUIを使用しました(このような問題を防ぐために常にこれをオンにしています)

config.vm.boot_mode = :gui

次に、ここのコマンドが機能しなかったため、VirtualBoxメニューを使用しました。メニューの[マシン]> [リセット]をクリックすると、sshが可能になりました。

0
mahemoff

ここに別の考えられる理由がエラーのためにあります:

[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もVMにSSHで接続できません。したがって、VMが実際に正常に動作している場合でも、Vagrantは「接続に失敗します」。

0
SunSparc

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 [email protected] -p 2222 -i /cygdrive/u/.vagrant.d/insecure_private_key

私のウィンドウボックスでは、PuTTYではなくcygwinを使用しています。

0
Artistan

タイプSudo /etc/init.d/vboxdrv setup。これで動作するはずです。

0
Daniel

私の問題は

/etc/hosts

エントリーがありました

127.0.1.1 lucid32

ボックス名はlucidtestだったので、上の行を

127.0.1.1 lucidtest

そしてそれは働いた。

0
Owais Lone

このメッセージは、sshサーバーがVM上で実行されていないことを示しています。インストールされていることを確認してください

Sudo apt-get install openssh-server

と実行

ssh localhost

エラーにならないはずです。

Vagrant内のエラーを除外するには、次の方法でVMに直接sshを試行してください。

ssh vagrant @ localhost -p2222

(デフォルトのユーザーとポート転送を想定)

0
Viktor Trón

実行中のvmをシャットダウンして、新しいベースボックスを作成しました。

  1. シャットダウンVMエクスポートしようとしています
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
0
Zippy Zeppoli