【環境構築編】入門Chef-Soloを読んで色々やってみたのでメモ


入門Chef Soloをざっと読みました

id:naoya さんによるchef-soloの入門本をkindleで買って読んでみました。

各章ごとBlog感覚で読めて、とてもわかりやすい内容でした。
5章まででコマンドの説明をして6章でおさらい、その後はレシピに関する説明という構成で、ひとまず6章まで読めばそれっぽく使えました。

ただ、Kindle版はデスクトップで読めないのが非常に残念です。
これから買う人は達人出版界の方が良いような気がします。

 
 

MacBookAirを使って試してみる

手元のMacBookAirで早速試してみました。

ひとまず仮想環境内でrails 3.2環境を構築することを目指します。

前提とする環境

  • OSX 10.8
  • git
  • rbenv + ruby-build
  • ruby 1.9.3p392
    • 2.0.0p0だとrubygems/formatのrequireでエラーが出て動きませんでした
    • 解決法がよく分からず、ひとまず1.9に戻したら無事動いたのでひとまずそれで
  • Oracle VM VirtualBox 4.2.6

chef-solo 環境構築

gem install chef vagrant berkshelf
gem install knife-solo --pre

knife-soloは入門chef-soloの教え通りに0.3を入れたいので、–preオプションをつけました。
書籍の方ではgit cloneしてrakeするインストール方法が紹介されています。
knife-soloで-o オプションが使いたいのが目的なので、どちらでも良いと思います。

vagrant 環境構築

以降、色々とファイルが生成されるので、適当な作業ディレクトリを作ってその中で作業をします。

vagrant box add precise32 http://files.vagrantup.com/precise32.box

仮想環境のイメージをダウンロードします。
これは一度行えばOKで、以降は「vagrant up」を実行するとvagrantがよしなにインポートして環境を構築してくれます。

こちらに他のOSイメージのリストがあります。

CentOSは良くも悪くも枯れているのが特徴なので、個人で遊ぶならUbuntuの方が適しているんじゃないかと思って今回はUbuntuのLTSであるprecise32.boxを使うことにしました。

vagrant init

これで Vagrantfile というファイルが生成されるので、編集します。

config.vm.box = "precise32"
config.vm.network :hostonly, "192.168.33.10"

編集する行だけ抜粋しました。

config.vm.box は vagrant box add コマンドで作成したbox名を指定します。
box add する段階で任意につけられるので、自分のつけた名前を指定します。

config.vm.networkはコメントを外すだけです。

vagrant ssh-config --host vagrant >> ~/.ssh/config

とすれば、IPアドレスではなくホスト名でログイン出来るよう、sshのコンフィグファイルに設定が追記されます。
–host で指定するホスト名は任意です。
私はあまり考えずに「vagrant」にしましたが、vagrantコマンドをわりと頻繁につかうので、ホスト名は別の名前にした方が分かりやすいと思います。

knife solo prepare hostname

で、仮想環境にchefを受け入れる準備を行います。

あとは好みで

vagrant gem install sahara

で、sahara をインストールします。

環境をロールバックすることが出来るプラグインです。
とりあえず入れたものの、まだちゃんと使っていません。

実際にvagrantの仮想環境上で色々と作業をする段階になったら使えると思います。

後は実際にレシピを書いていくだけ

後日書きます。
というわけで、つづく・・・

Leave a Comment