ど素人のchef体験記 2
CentOSよりも新しいバージョンのRubyが入っているUbuntuでやった方が「knife ec2コマンドとかも使えて便利かも」と思い、VirtualBox版のUbuntuをダウンロードして環境構築をしてみた。
注:knife ec2コマンドはまだインストールもしていないので、本当に使えるかは不明
Chefとは関係ないが、Ubuntuの使い方でかなり悩んだ。
コマンドが慣れない(aptは初めてなので)のはもちろんだが、デスクトップの使い方で悩んだ(笑)
Terminalをどこから起動するのか悩んだし、それを左のバーに登録する方法も検索したわよ。
Terminalをバーに登録後は特に問題なし。
初期状態でバーにオフィスアプリがあふれているのは、さすがデスクトップOSって感じがした。
今回の環境
ホストOSはWindows 7
VirtualBoxでUbuntu 12.04 LTS 32bit
chef(11.8.0)、knife-solo(0.4.0)をgemでインストール
VirtualBoxでCentOS 6 64bit
VirtualBoxのLinuxにはネットワークアダプタを2つ用意し、両方とも1個目はNAT、2個目はホストオンリーアダプターを使用。
最初は両方ともブリッジアダプターで起動していたのを、上記のネットワーク設定に変更した。
ここもはまったよ…。
Ubuntuは問題なしだったが、CentOSでネットワークが全く利かなくなった。
またも検索して、下記のページを参考に対処した。
http://geocities.yahoo.co.jp/gl/ds301b/view/20110928/1317221758
MACアドレスの確認は、下記ページを参考にdmesgコマンドで確認した。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231116/
はまったこと
Ubuntuにknife-soloをインストール、cookbookを集める、までは良かったのだが、$ knife solo cook centos を実行するとcookbookのパスを/var/chefと認識していてうまく行かない。
実際には~/chef-repo/cookbooksにあるのに。
この時、~/.chef/knife.rbにcookbook_list ["/home/yutanpo/chef-repo/cookbooks"]を追記してみたがエラー変わらず。
むしろ、エラーが出た。
array to stringでなんちゃらかんちゃらと出た。(エラーの詳細残してなくてごめんなさい)
この時、実行は自分のホームディレクトリで作業していた。
ネット検索より、/etc/chef/knife.rbを作成してみたりしたが、無駄。
結果、knife solo cookは~/chef-repoの中で実行しなくてはならなかったのだ!
(このchef-repoディレクトリは、$ knife solo init chef-repo コマンドで作成したものです。)
よく見たらchef-repoの中に.chef/knife.rbがあったよ。
~/chef-repo/以下で実行すると、その中の.chef/knife.rbを見て、~/chef-repo/cookbooksをちゃんと参照してくれるんだね!
まったく、こんな単純なことでハマるなんて……。
あと、$ knife solo prepare root@centos をするときも~/chef-repoの下でやること。
prepareした場所にnode/centos.jsonが作られるからね。
今回は~/nodeに出来てしまっていた&編集済みのjsonファイルを~/chef-repo/node/以下に移動して実行したよ。
その後、jsonファイルへのmysql設定を忘れてまた1度失敗したけれど、無事CentOS上にwordpressがインストールされた。
jsonファイルの書き方は前回とちょっと変えた。
こっちの方が普通の書き方だと思う。
{ "mysql": { "server_root_password": "zzzzzzzzz", "server_repl_password": "xxxxxxxxx", "server_debian_password": "yyyyyyyy" }, "run_list": [ "recipe[wordpress::default]" ] }