ど素人のchef体験記 2

CentOSよりも新しいバージョンのRubyが入っているUbuntuでやった方が「knife ec2コマンドとかも使えて便利かも」と思い、VirtualBox版のUbuntuをダウンロードして環境構築をしてみた。
注:knife ec2コマンドはまだインストールもしていないので、本当に使えるかは不明


Chefとは関係ないが、Ubuntuの使い方でかなり悩んだ。
コマンドが慣れない(aptは初めてなので)のはもちろんだが、デスクトップの使い方で悩んだ(笑)
Terminalをどこから起動するのか悩んだし、それを左のバーに登録する方法も検索したわよ。
Terminalをバーに登録後は特に問題なし。
初期状態でバーにオフィスアプリがあふれているのは、さすがデスクトップOSって感じがした。

今回の環境

ホストOSはWindows 7
VirtualBoxUbuntu 12.04 LTS 32bit
 chef(11.8.0)、knife-solo(0.4.0)をgemでインストール
VirtualBoxCentOS 6 64bit


VirtualBoxLinuxにはネットワークアダプタを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に前回と同じwordpress用のcookbookを集め、CentOSに対してknife soloでwordpressが動作する環境を構築。

はまったこと

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]"
  ]
}