最近PrePANのcarton 1.0化を進めるため、vagrant、chef、knife、AWSなどにはまりまくっております。今回はその中でvagrantにchefを適用しようとしたら全く終わらなくて、それについて調べたことについて話します。
PrePANの開発環境でvagrantを使っていたりするのですが、そのVMに対してchefを適用してみたところ、固まってしまって動かない(厳密に言うとすこしずつしか動かない)という状態になりました。そこでいろいろ調べてみると、IPv6とDNSの関係でネットワークの疎通が遅くなっていたという事がわかりました。
詳しくは Slow networking (due to IPv6?) on CentOS 6.x · Issue #1172 · hashicorp/vagrant · GitHub を見てもらうと分かると思いますが、IPv6で名前解決に行く時にtimeoutまで固まってしまう(?)ということらしいです。この辺りそこまで詳しくないので、なんでそうなるかはよくわかっていません。
修正する方法としてはVagrantfileに以下を追記するだけで大丈夫でした。
Vagrant.configure("2") do |config| config.vm.box = "centos-6.4" # ... # IPv6とDNSでのネットワーク遅延対策で追記 config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--natdnsproxy1", "off"] vb.customize ["modifyvm", :id, "--natdnshostresolver1", "off"] end end