起動程度は確認しておきます。初期設定knifeはchefの設定情報(cookbooks)の管理ツールです。以下に作成されるようなので、作成します。['/var/chef/cookbooks']という内容で用意します。その後、下記のコマンドでcookbookが作成できます。対して、vagrantはVirtualBoxのVMを操作するCUIのフロントエンドです。VirtualBoxまずは管理される対象のVirtualBoxが必要になります。以下のURLからよしなに。https://www.virtualbox.org/wiki/DownloadsVagrantgemでインストールします。installed一撃ですね。1.1が出ちゃいました。http://docs.vagrantup.com/v2/installation/index.htmlここに書いてある通り、gemでのインストールは廃止です。各OS毎にパッケージが用意されてるので、(1.0系がインストールされている場合はgemを削除してから)それらをインストールします。仮想マシンの準備boxのダウンロードVirtualBoxとVagrantが入ったら、起動する仮想マシン環境(box)を用意しなければなりません。様々なものが公開されているので、その中のものを使うのが手っ取り早いでしょう。http://www.vagrantbox.es/↑に色々あります。ここではCentOS6.3を例に進めます。/vagrant無事実行できました。VMが動いているかどうかは以下のように確認できます。cookbookが見えないとどうにもなりません。以下へ移動すればよさそうです。VM側のchef-soloの設定を合わせる/etc/chef/solo.rbの内容を↓こんな感じに。下記のように編集してみます。勉強会でディストリビューションの差異は吸収してくるっぽい話でしたので、debian系の名前をそのまま書いちゃいました(後述しますが、これが失敗の元)。したら、以下のように実行します。apache2......、コケましたね。complete成功しました。ディストリビューション毎に異なるパッケージ管理システムの違いは吸収するけど、パッケージ名までは知らないよ、自分で分岐するなりしろってことですね。結果を確認してみましょう。実行中...動いてます。実行するのは面倒なので、自動実行できるようにしてみます。さっき作ったVMを破棄します。好きに作業をやり直せるのがvagrantのいいところ。以下の行を追加します。provisionのとこで実行するrecipeを指定しています。host_nameとnetwork設定は直接今回の件とは関係なくて、単に同じLAN内の他のhostから参照したかっただけです。completeうまくいきました。便利!コミュニティのcookbookを使う自分で作った何かより誰かが作った何かの方が大抵の場合よくできているものです。いうことで、世に公開されて実績のあるcookbookを使ってみます。cookbookの在処ですけど、オフィシャルサイトにたくさんあります。http://community.opscode.com/cookbooks/色々探せば他にもあるんですけど、勉強会ではchefとかknifeとかrecipeとか一般名詞だらけでググり難いねって話になってました。ここではmysqlのcookbookを試してみることにします。理由は一番上にあったから。cloneしたものをcookbooksの中に置きます。ダウンロードした方が依存関係を見てくれたりと、問題が少ないそうです。ダウンロードしないとならなかったのでサラっと追加してます。世間の言うことは従った方がいいです。以下のように書き替えて、mysqlの設定を追加します。ここではrootユーザのPWを。セットで必須のようなので指定しました。endで、一回destroyしたboxをもっかいup。complete.こけました。バージョンの問題らしく......。http://tickets.opscode.com/browse/COOK-1854もう一回実行するとうまくいくそうなので、もう一回やります。complete今度はOKです。一発で成功するそうなので、新しいバージョンのchefが含まれるboxがあれば、そちらを使う方がいいでしょう。動作を確認してみます。statement.mysql>設定した通りに動いています。これで開発環境の自動構築が最低限ながら試せました。実際に開発で使うにはまだまだやること山積ですけど、VagranとChef-soloによる環境の構成制御の最初に一歩が踏み出せたのではないでしょうか。date*日本語が含まれない投稿は無視されますのでご注意ください。fax.0422-26-9781お問い合わせはこちらからどうぞ。