ハマリポイント

  • 古いvagrantを削除する。
  • VirtualBoxを新しくし過ぎない。(ちょっと古いやつを使う)
  • VirtualBox系でハマったらMacを再起動する。
  • ruby2.xではchef-solo動かない。
  • chefは公式サイトからcurlで入れる。
  • knife-soloはgithubから入れる。
  • knife-soloをbundle exec rake installする時ちゃんとruby1.9.3に入るようにする。

古いvagrantのアンインストール

% gem uninstall vagrant
% rm -rf ~/.vagrant.d

vagrantのインストール

http://downloads.vagrantup.com/tags/v1.2.2

debian wheezy64のvm作成

断固debian。

% vagrant box add wheezy64 http://dl.dropbox.com/u/937870/VMs/wheezy64.box
% mkdir wheezy64
% cd wheezy64
% vagrant init wheezy64
% vagrant up

下記でいい感じの設定を履いてくれる。(便利)

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

で入れるようになってる。

chef-soloのインストール

% curl -L https://www.opscode.com/chef/install.sh | sudo bash
% chef-solo -v
Chef: 11.4.4

ちゃんと動くか確認。

knife-soloのインストール

gem版は0.2.0だったのでgithubから入れる。

% git clone git@github.com:matschaffer/knife-solo.git
% cd knife-solo
% git submodule init
% git submodule update
% bundle
% bundle exec rake install

rubyが2.xだと動かないので注意!

chef-soloをwheezy64にインストール

% knife solo prepare wheezy64

これで入るChefが0.10.8なのが気になる・・・。

自分のcookbookのリポジトリ作成

% knife solo init chef-cookbook
% cd chef-cookbook
% git init .
% git commit -m'First commit'
% hub create

nginxをインストールするrecipeを書く

% knife cookbook create nginx -o site-cookbooks
% vi site-cookbooks/nginx/recipes/default.rb
package 'nginx' do
  action :install
end
% vi nodes/wheezy64.json 
{
  "run_list":[
    "nginx"
  ]
}

実行。

% knife solo cook wheezy64   
Running Chef on wheezy64...
Checking Chef version...
Uploading the kitchen...
Generating solo config...
Running Chef...
[Wed, 26 Jun 2013 08:35:26 +0200] INFO: *** Chef 0.10.8 ***
[Wed, 26 Jun 2013 08:35:26 +0200] INFO: Setting the run_list to ["nginx"] from JSON
[Wed, 26 Jun 2013 08:35:26 +0200] INFO: Run List is [recipe[nginx]]
[Wed, 26 Jun 2013 08:35:26 +0200] INFO: Run List expands to [nginx]
[Wed, 26 Jun 2013 08:35:26 +0200] INFO: Starting Chef Run for vagrant-debian-wheezy-64.vagrantup.com
[Wed, 26 Jun 2013 08:35:26 +0200] INFO: Running start handlers
[Wed, 26 Jun 2013 08:35:26 +0200] INFO: Start handlers complete.
[Wed, 26 Jun 2013 08:35:26 +0200] FATAL: No cookbook found in ["/home/vagrant/chef-solo/cookbooks-1", "/home/vagrant/chef-solo/cookbooks-2", "/home/vagrant/chef-solo/cookbooks-3"], make sure cookbook_path is set correctly.
[Wed, 26 Jun 2013 08:35:26 +0200] INFO: Processing package[nginx] action install (nginx::default line 9)
[Wed, 26 Jun 2013 08:35:26 +0200] INFO: Chef Run complete in 0.267082 seconds
[Wed, 26 Jun 2013 08:35:26 +0200] INFO: Running report handlers
[Wed, 26 Jun 2013 08:35:26 +0200] INFO: Report handlers complete

一応入ったけどFATALがきになる・・・。