chefでひな形を作る(recipe内)

今回wordpressの中の recipe を実行することにしたので実際に空サーバーにしてもらう recipe を書き表しておく

#
# Cookbook Name:: wordpress
# Recipe:: default
#
# Copyright 2016, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute

#nginxとphp-fpm をインストールする
%w{nginx php-fpm}.each do |pkg|
  package pkg do
   action :install
  end
end
#nginxを定義させる
service "nginx" do
  action [:enable] 
  supports :start => true, :status => true, :restart => true, :reload => true
end
php-fpmの定義
service "php-fpm" do
  action [:enable] 
  supports :start => true, :status => true, :restart => true, :reload => true
end
#recipeの実行順序は
#クックブックの評価(レシピの定義、属性値を読み込んで一覧化する)
#クックブックの実行(リソースを評価して実行する)
#ディレイリソースの実行(service startなど)
#なので実はserviceは書いてる場所に関係なく遅延実行しており実際は最後に service は実行されてしまうので notifies コマンドで
実行の順番を繰り上げさせる
#DocumentRoot に指定あるディレクトリを作成する
directory "/var/www/html" do
 owner "nginx" 
 recursive true
 group "nginx" 
 mode 0755
 action :create
end
# nginx.confというテンプレートから
# /etc/nginx/conf.d/mysite.confという設定ファイルを作成する
 template "/etc/nginx/conf.d/mysite.conf" do
#絶対パスではなくTemplatesからの相対パスで記載しなければならない
 source "/default/nginx.conf" 
#owner 指定
 owner "nginx" 
#nginx グループに所属という指定
 group "nginx" 
 mode 0644
 action :create
 variables({ # テンプレートに与える変数の値を指定する
 :hostname => `/bin/hostname`.chomp
              })
#実際にnginxとphp-fpmを定義したその後に記述をしてあげる
notifies :restart, "service[nginx]", :immediately
 notifies :restart, "service[php-fpm]", :immediately
 end

nginxで空サーバーを動かすことにしたので設定ファイルのテンプレートのソースはいままで nginx で使ってた nginx.conf をそのままコピーしている