** Vagrantで、apache を起動するレシピを書いてみる [#c863707c]
- 環境
ホストOS: windows7, VirtualBox 4.2.16, Vagrant 1.2.4
ゲストOS: CentOS 6.4
*** レシピ〜〜 [#fc6fb98b]
- クックブックを作成
C:\Users\hage\chef-repo>knife cookbook create httpd -o cookbooks
- レシピを編集する(C:\Users\hoge\chef-repo\cookbooks\httpd\recipes\default.rb)
C:\Users\hoge\chef-repo> notepad cookbooks\httpd\recipes\default.rb
-- 内容をへんしゅう
#
# Cookbook Name:: httpd
# Recipe:: default
#
# Copyright 2013, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
log "Hello, httpd!"
package "httpd" do
action :install
end
%w{iptables}.each do |service_name|
service service_name do
supports :status => true, :restart => true, :reload => true
action [:disable, :stop]
end
end
%w{httpd}.each do |service_name|
service service_name do
supports :status => true, :restart => true, :reload => true
action [:enable, :restart]
end
end
template "httpd.conf" do
path "/etc/httpd/conf/httpd.conf"
source "httpd.conf.erb"
owner "root"
group "root"
mode 0644
notifies :restart, 'service[httpd]'
end
- テンプレートを置く(C:\Users\hoge\chef-repo\cookbooks\httpd\templates\default)
C:\Users\hoge\chef-repo> notepad cookbooks\httpd\recipes\default.rb
-- とりあえずゲストOSでファイルをコピーしましょうか
# cp /etc/httpd/conf/httpd.conf /vagrant/chef-repo/cookbooks/httpd/templates/default/httpd.conf.erb
※windows上では
C:\Users\hage\chef-repo\cookbooks\httpd\templates\default\httpd.conf.erb
*** Vagrant provision 実行まで [#r1e3d356]
- Vagrantfile を編集
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "CentOS-6.3-x86_64-v20130101"
config.vm.box_url = "http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.3-x86_64-v20130101.box"
config.vm.define :web1 do |web1|
web1.vm.network :forwarded_port, guest: 22, host: 2222, host_ip: "127.0.0.1", id: "ssh", auto_correct: true
web1.vm.network :private_network, ip: "192.168.1.13"
web1.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", 512]
end
web1.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "./chef-repo/cookbooks"
chef.add_recipe "hello"
chef.add_recipe "httpd"
end
end
end
- 実行
C:\Users\hage\chef-repo> vagrant provision web1
- 確認
http://192.168.1.13