入門 ChefSolo 自分メモ (3)

とりあえず、仮想インスタンスを初期化するには vagrant destroy して vagrant up すれば良い、ってのは分かりましたがその時間もアレ。ってか sahara 折角入れたので使いたいんですがどうすりゃ良いのやら。
ええと、とりあえずドキュメント見てもそれっぽい記述が無い。

とりあえず、vagrant destroy で破棄できるみたいなのでそれを使う方向で。

とは言え

rbenv による Ruby 導入とかどの程度時間がかかるのかな。体感的に ec2 の micro とどの位違うのかは確認しておきたいですが。。
とりあえず git と gcc 導入、って思ったら通信ができぬ。Vagrantfile を弄ってみれば良いのか、とか言いつつ以下に変更したらオチた。

  config.vm.network :hostonly, "192.168.50.12"

どうも以下に、らしいのですが未だ通信できず。

  config.vm.network :private_network, ip: "192.168.50.12"

しかも 192.168.50.12 な ping の返事は戻ってこないし。つうかこれって親側の問題なのかな。/proc/sys/net/ipv4/ip_forward とか?
とりあえず親機の nic に ping したら reply は戻ってくる模様。むむ。default gateway は 10.0.2.2 になってるみたいで、しかもこれが nameserver になっている。
む、親機の default gateway からも ping の返事は戻ってきてますね。再度中で yum update してみるとやはり名前の解決ができていない模様。

その後

以下なナニを発見。

Ubuntu 12.10 uses 127.0.1.1 instead of 127.0.0.1 for DNS resolution, so I added 127.0.1.1 to the fix for Ubuntu 12.04.

何これ、と言いつつ親機の /etc/resolv.conf 見ると以下。

nameserver 127.0.1.1

何これorz
しかも今使ってるのってでびあんパケジなソレですね。これは酷い。
ええと対象ソースは plugins/providers/virtualbox/action/sane_defaults.rb らしいのですが、以下の配下にあるみたい。

  • /opt/vagrant/embedded/gems/gems/vagrant-1.1.2

以下の部分か。

        def enable_dns_proxy?
          begin
            contents = File.read("/etc/resolv.conf")

            if contents =~ /^nameserver 127\.0\.(0|1)\.1$/

特定できてるのであれば手動で直して云々してみるか。とは言えとりあえず外回りしてこよ。

あらら

帰宅してよくよく見たら上のソレは対応済みじゃんか。問題解決したと思ったのに元の黙阿弥orz ちなみに名前解決済みな google のアドレス宛てに中から ping したら返事が戻ってきやがった。

[vagrant@localhost ~]$ ping 74.125.235.159
PING 74.125.235.159 (74.125.235.159) 56(84) bytes of data.
64 bytes from 74.125.235.159: icmp_seq=1 ttl=63 time=63.2 ms
64 bytes from 74.125.235.159: icmp_seq=2 ttl=63 time=62.4 ms
64 bytes from 74.125.235.159: icmp_seq=3 ttl=63 time=62.7 ms
^C

こりゃ完全に名前解決な問題だなぁ。ちなみにこの時点の /proc/sys/net/ipv4/ip_forward の値は 0 でした。ちょっとうぶんつなイメージ持ってきてリトライしてみることにします。なんつーか色々と微妙だな。

precise32 な box 導入

sudo apt-get update してみましたが駄目。74.125.235.159 への ping の返事は戻ってきますね。むむむむ。

とりあえず

使うことができる仮想リソースに virtualbox + vagrant を導入して云々、という奇策を思いつくなど。
とりあえず以下から virtualbox なパケジ取得

その前に

# yum install -y libGL libQtCore libQtNetwork libSDL-1.2 libXmu libXt

して、って駄目か。ええと、libQt* とか libSDL なパケジの名前は何だ。
とりあえずこれを入れて

# yum install -y avahi-qt4-devel

これを入れれば良いのかどうか。

# yum install -y SDL-devel

を、大丈夫な模様。

# rpm -i VirtualBox-4.2-4.2.10_84104_el6-1.x86_64.rpm

次は vagrant か。以下から取得して

こうか。

# wget http://files.vagrantup.com/packages/67bd4d30f7dbefa7c0abc643599f0244986c38c8/vagrant_x86_64.rpm

で、rpm -i で良いのね。しかもこれ、ruby 導入の必要が無いあたりもアレですね。

# vagrant box add http://files.vagrantup.com/precise64.box

いやあ、これ某 IDCF さんの仮想環境の中なんですが色々な意味でなかなか早くて良いですね。で、諸々盛り込んで up したら以下な出力。

The VM failed to remain in the "running" state while attempting to boot.
This is normally caused by a misconfiguration or host system incompatibilities. 
Please open the VirtualBox GUI and attempt to boot the virtual machine
manually to get a more informative error message.

GUI で云々は無理だなぁ。とりあえず precise32 な box を取得してリトライしようとしています。download が早くて助かる。を、precise32 だとイケてるみたい。やったね。
そして vagrant ssh で中に入って www.google.co.jp に ping をアレしたらきちんと返事が戻ってきました。やれやれ。これで ChefSolo なナニの練習が (ry