Chefのメモ
chefはrubyで書かれたサーバー設定や更新を自動化するツールです。
rubyのバージョンが古いとエラーが出たりするので、1.9以上のものを入れておきましょう。
準備ができたら、chefのインストール。
$ curl -L https://www.opscode.com/chef/install.sh | sudo bash
続けてgemでknife-soloをインストール。
$ gem install knife-solo
gem listでインストール状況を確認。chefとknife-soloのインストールを確認する。
初期設定knife configureを行う。設定はデフォルトで進めていくので、全てEnterを押していく。Enter, Enter, Enter...
$ knife configure
Vagrantで進めていくので、VagrantでaddしておいたCentOSの64bit版を使って仮想マシンを立ち上げる。
mkdir vagrant vagrant init centos64
Vagrantfileの設定
ワークステーション側からブラウザでアクセスしたいので、ネットワーク周りの設定を行って、vagrant up。
vagrant up
sshの設定も。このあたりはドットインストールのレッスンで使った設定を使い回し。
vagrant ssh-config --host harmony vagrant ssh-config --host harmony >> ~/.ssh/config
初期化
knife solo init chef-repo
rubyのバージョンが低いとここでエラー
ERROR: knife encountered an unexpected error
ruby1.8.7ではダメらしいので、自分はmacportsでruby2.0.0を入れた。
こちらを参考にした。
http://hotwebtopics.seesaa.net/article/363130711.html
リポジトリを作成する。リポジトリは、クックブック群を含む、Chefの実行に必要な一連のファイルをまとめる入れ物。キッチンともいう。特定のプロジェクトに一つのリポジトリといった粒度。
cd chef-repo knife solo prepare harmony
クックブックを作成する。クックブックは、ファイルに対するディレクト、あるいはクラスに対する名前空間のように、特定のレシピに必要なデータやファイルをまとめる入れ物。
knife cookbook create hello -o site-cookbooks/
- oオプションでパスを指定してcookbookをcreateできる。
レシピを作る。レシピとは「コード化された手順書」であり「サーバーの状態」。
recipes/default.rbの編集し、内容を記述。rbという拡張子からも分かる通り、rubyで書かれている。
nodes/harmony.jsonの編集して読み込むレシピを記述。
レシピの実行。
knife solo cook harmony