#概要
VirtualBox(VMWare)で仮想マシンが作れるのを、更にコマンドで簡単に設定していく (備忘録)
環境・レシピの用意
- OS X 10.8.4
- ruby-1.9.3-p392
$gem install chef -- --no-ri --no-rdoc
$knife configure
$gem install knife-solo -- --no-ri --no-rdoc
##cookbook 作成
リポジトリを作って、その中にmycookbookというcookbookを作る
knife solo init myrepo
knife cookbook create mycookbook -o myrepo/site-cookbooks/
-
デフォルトは/var/chef/以下にいろいろ作られる
-
/etc/chef/solo.rb
=> 生まれたてのVagrantVM上で
chef-solo
だけ実行すると探していた。
chef-soloをVM上で実行する
- ゲストで/etc/chef/solo.rb を作成。
- /vagrant/myrepoをcookbookpathに指定
- sudo chef-solo -o cookbookname
- これでとりあえずいける
chef-soloを実行する際に参照するファイル
cookbook作成のファイルパスを指定することなどができる
solo.rb
file_cache_path "/tmp/chef-solo"
cookbook_path ["/vagrant/myrepo/site-cookbooks"]
log_level :debug
/vagrant/myrepo/site-cookbooks/mycookbook/recipes/default.rb
#
# Cookbook Name:: mycookbook
# Recipe:: default
#
# Copyright 2013, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
log 'Hello Chef'
package 'httpd' do
action :install
end
package "postgresql-server" do
action :install
end
#version_file = "/var/lib/post
##cookbook実行
vagrantで生成したVMにchef-soloでcookbookを流し込むのをしたい
下記のように追加する
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "myrepo/site-cookbooks"
chef.add_recipe "mycookbook"
chef.json = {:nameservers => ["10.0.0.1"]}
end
vagrant up
ですべて正常にいけば終わり