最近AWSとかvagrantとかchefとか勉強していて、vagrantを使っていたのだけど、はじめからハマったのでメモ。
起こったこと
vagrant upすることでVMが立ち上がるのだけど、以下の様なところまで言って全く起動しなくなった。
[default] VM already created. Booting if it's not already running... [default] Clearing any previously set forwarded ports... [default] Forwarding ports... [default] -- 22 => 2222 (adapter 1) [default] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Preparing network interfaces based on configuration... [default] Booting VM... [default] Waiting for VM to boot. This can take a few minutes.
で、全くわからないなーということをつぶやいてた。
vagrant Waiting for VM to bootの状態から動かないんだけどどういうことだろ
— 柴崎優季 (@shiba_yu36) 2013年3月14日
config.vm.boot_mode = :gui
そうしたらkazeburoさんにguiで起動してみたらいいよと教えてもらえた。
@shiba_yu36 Vagrantfileの config.vm.boot_mode = :gui を有効にして確認するとよいよ
— つぶあん🇺🇦 (@kazeburo) 2013年3月14日
ので、Vagrantfileに以下のように設定してみた。
config.vm.boot_mode = :gui
そうするとvagrant upと同時にvirtualboxのGUIが立ち上がって起動する。ただ、やってみたけど普通に起動してしまってなんぞ。。。って感じだった。
ゲストOSのsshdのdns lookupを止める
そうしたらhakobeさんにゲストOSのsshdのdns lookupを止めたらいいって聞きましたと言われたのでやってみた。あと普通にVAGRANT_LOG環境変数でデバッグプリントしてくれたりするらしい。
@shiba_yu36 ゲストOSのsshdのDNSの名前ひきやめたらはやくなったという経験があります!
— hakobe (@hakobe) 2013年3月14日
@shiba_yu36 あとログをうるさくする環境変数あったとおもいます
— hakobe (@hakobe) 2013年3月14日
まずはvagrant upをデバッグオプションつけて実行してみる。
VAGRANT_LOG=DEBUG vagrant up
すると以下の様なのがずっと出続けてる事がわかった。SSHで繋ぎに行くんだけどtimeoutしてretryしてる?
INFO ssh: Connecting to SSH: 127.0.0.1:2222
というわけで言われたとおりsshdの名前引きが怪しいということで、vagrant sshで中に入って/etc/ssh/sshd_configを修正する。
vagrant ssh
sudo vi /etc/ssh/sshd_config
# UseDNS no を追記
そのあともう一度vagrant upし直し。
vagrant halt vagrant up
起動した!!
[default] VM already created. Booting if it's not already running... [default] Clearing any previously set forwarded ports... [default] Forwarding ports... [default] -- 22 => 2222 (adapter 1) [default] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Preparing network interfaces based on configuration... [default] Booting VM... [default] Waiting for VM to boot. This can take a few minutes. [default] VM booted and ready for use! [default] Configuring and enabling network interfaces... [default] Mounting shared folders... [default] -- v-root: /vagrant
sshのtimeoutが短いという話
あと、sshのtimeoutが短いからそれを長くしたら直ったという話を聞きました。
@shiba_yu36 http://t.co/NKzyJlPgZP あたり参考になりませんか?うちはこれでした。
— kun432@VFJUG🇯🇵 (@kun432) 2013年3月14日
@shiba_yu36 うちの場合は、vm側で設定する手間を省くためにVagrantfileを複数おいて、グローバルな設定にしちゃいました。ってか10秒は短すぎる気がしますね。 http://t.co/QsoBnU6C2J
— kun432@VFJUG🇯🇵 (@kun432) 2013年3月14日
http://docs-v1.vagrantup.com/v1/docs/config/ssh/timeout.html に書いてあるパラメータを60にしたらとりあえず起動するようになったりしました。