apache2 のCookbookを作る [Chef]
Apache2.2(httpd)用のCookbookを自前で作ることにします。
(理由は、AJPでtomcat7との連携を前提にしているため。これをサポートするCookbookがない)
まずは、空のCookbookをsite-cookbookにapache2として作成します。
【chef-repo\site-cookbooks\apache2\recipes\default.rb】
chef-repo\site-cookbooks\apache2\templates\default\httpd.conf.erbとしてファイルを置きます。
ssl.confのテンプレートを用意しておきます。ここは、ほぼデフォルトのままです。(ここには掲載しません)
chef-repo\site-cookbooks\apache2\templates\default\ssl.conf.erbとしてファイルを置きます。
robots.txtもファイル属性で設定しておきます。
【chef-repo\apache2\files\default\robot.txt】
(理由は、AJPでtomcat7との連携を前提にしているため。これをサポートするCookbookがない)
まずは、空のCookbookをsite-cookbookにapache2として作成します。
C:\Users\hoge\chef-repo>knife cookbook create apache2 -o site-cookbooks
** Creating cookbook apache2
** Creating README for cookbook: apache2
** Creating CHANGELOG for cookbook: apache2
** Creating metadata for cookbook: apache2
レシピは、yumでhttpdをインストールして、サービスを起動するだけのもので、以下の通りです。【chef-repo\site-cookbooks\apache2\recipes\default.rb】
#
# Cookbook Name:: apache2
# Recipe:: default
#
# Copyright 2013, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
package "httpd" do
action :install
end
package "mod_ssl" do
action :install
end
template "/etc/httpd/conf/httpd.conf" do
source "httpd.conf.erb"
group "root"
owner "root"
mode "0644"
# notifies :reload, 'service[httpd]'
end
template "/etc/httpd/conf.d/ssl.conf" do
source "ssl.conf.erb"
group "root"
owner "root"
mode "0644"
# notifies :reload, 'service[httpd]'
end
cookbook_file "/var/www/html/robots.txt" do
source "robots.txt"
owner "root"
group "root"
mode "0644"
action :create_if_missing
end
service "httpd" do
supports :status => true, :restart => true
action [ :enable, :restart ]
end
httpd.confのテンプレートは、デフォルトのファイルをテンプレートとして使用します。(ここには掲載しません)chef-repo\site-cookbooks\apache2\templates\default\httpd.conf.erbとしてファイルを置きます。
ssl.confのテンプレートを用意しておきます。ここは、ほぼデフォルトのままです。(ここには掲載しません)
chef-repo\site-cookbooks\apache2\templates\default\ssl.conf.erbとしてファイルを置きます。
robots.txtもファイル属性で設定しておきます。
【chef-repo\apache2\files\default\robot.txt】
User-Agent: *
Disallow: /
先のGuestOSの状態をRollbackします。C:\Users\hoge\chef-repo>vagrant sandbox rollback web
作成したCookbookでCookします。C:\Users\hoge\chef-repo> knife solo cook vagrant@hoge202
タグ:Chef