Help us understand the problem. What is going on with this article?

Vagrant+chef-soloの練習

More than 5 years have passed since last update.

概要

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ですべて正常にいけば終わり

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away