$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

vagrant upの実行が終わらない話

最近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.

で、全くわからないなーということをつぶやいてた。

config.vm.boot_mode = :gui

そうしたらkazeburoさんにguiで起動してみたらいいよと教えてもらえた。

ので、Vagrantfileに以下のように設定してみた。

config.vm.boot_mode = :gui

そうするとvagrant upと同時にvirtualboxGUIが立ち上がって起動する。ただ、やってみたけど普通に起動してしまってなんぞ。。。って感じだった。

ゲストOSのsshdのdns lookupを止める

そうしたらhakobeさんにゲストOSのsshdのdns lookupを止めたらいいって聞きましたと言われたのでやってみた。あと普通にVAGRANT_LOG環境変数デバッグプリントしてくれたりするらしい。


まずは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が短いからそれを長くしたら直ったという話を聞きました。


http://docs-v1.vagrantup.com/v1/docs/config/ssh/timeout.html に書いてあるパラメータを60にしたらとりあえず起動するようになったりしました。

まとめ

こういうこと全くやったことなくて、しかもネットワークとかサーバ周りとか全然分からなすぎて何をすればいいかもわからないみたいな感じだった。でも実際にはその部分はWebサービスを作る上では必要になってくる部分なのに、仕事では出来る人におまかせとか言ってた。
けれど幅広い技術を身につけておかないといろんな状況に対応できない気がしているので、今後もどんどんこういうことやってきたい。

あと普通にvagrantとかchefとか面白いですね。今更感強いけど。

教えてくれた方々ありがとうございました!!