** 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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS