local環境
- MacOSX 10.8.4
- ruby 1.9.3p327
作成する仮想環境
- Ubuntu 12.04
- Nginx
手順
- chef-soloをinstall
- knife-soloをinstall。最新のver0.3.0をinstallするため、githubからcloneします。
$ git clone git@github.com:matschaffer/knife-solo.git $ cd knife-solo $ bundle $ bundle exec rake install
- Virual Boxをinstall
こちらからDownLoad - vagrantをinstall
- vagrant環境を作成
vagrantbox.esから使いたいboxを選ぶ
$ vagrant box add ubuntu12_04 http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-vagrant-amd64-disk1.box $ vagrant box list $ mkdir Ubuntu $ cd Ubuntu $ vagrant init ubuntu12_04 $ vagrant up
下記で仮想環境にアクセスできる
$ vagrant ssh
knife soloでsshアクセスできるように下記を実施。host名はdev1とする。
$ vagrant ssh-config --host dev1 >> ~/.ssh/config
- 仮想環境にknife soloをinstall
$ knife solo prepare dev1
- cookbookレポジトリを作成。
とりあえず、上述のVagrantのdirに一緒に作成しておきます。
$ knife solo init chef-repo $ cd chef-repo $ git init $ git add . $ git commit -m 'init'
- 仮想環境にinstallするレシピを書く
$knife cookbook create nginx -o site-cookbooks $vi site-cookbooks/nginx/recipes/default.rb package 'nginx' do action :install end service "nginx" do supports :status => true, :restart => true, :reload => true action [ :enable, :start ] end
$ vi nodes/dev1.json { "run_list":[ "nginx" ] }
- 仮想環境にレシピを適用
$ knife solo cook dev1
- 仮想環境側で確認
nginxのバージョンが最新にならない。。。srcからinstallしようかな。。。
$ nginx -v nginx version: nginx/1.1.19
- 動作確認したら、recipeをcommit
$ git add ./site-cookbooks/nginx/ $ git commit -m 'add nginx recipe'
$ gem install chef $ knife -v Chef: 11.4.4
$ gem install vagrant
参考:
入門Chef Solo
http://docs.komagata.org/5098