2013年7月18日木曜日

vagrant + knife soloでnginxをinstallしてみる

備忘録としてまとめます。

local環境


  • MacOSX 10.8.4
  • ruby 1.9.3p327

作成する仮想環境


  • Ubuntu 12.04
  • Nginx

手順

  1. chef-soloをinstall
  2. $ gem install chef
    $ knife -v
    Chef: 11.4.4
    
  3. 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
  4. Virual Boxをinstall
    こちらからDownLoad
  5. vagrantをinstall
  6. $ gem install vagrant
    
  7. 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
    
  8. 仮想環境にknife soloをinstall
    $ knife solo prepare dev1
    
  9. cookbookレポジトリを作成。
    とりあえず、上述のVagrantのdirに一緒に作成しておきます。
    $ knife solo init chef-repo
    $ cd chef-repo
    $ git init
    $ git add .
    $ git commit -m 'init'
    
  10. 仮想環境に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"
      ]
    }
    
  11. 仮想環境にレシピを適用
    $ knife solo cook dev1
    
  12. 仮想環境側で確認
    nginxのバージョンが最新にならない。。。srcからinstallしようかな。。。
    $ nginx -v
    nginx version: nginx/1.1.19
    
  13. 動作確認したら、recipeをcommit
    $ git add ./site-cookbooks/nginx/
    $ git commit -m 'add nginx recipe'
    

参考:
入門Chef Solo
http://docs.komagata.org/5098
このエントリーをはてなブックマークに追加