LoginSignup
10
9

More than 5 years have passed since last update.

Chef-SoloでApacheにプロジェクト固有の設定をする

Posted at

今回はVagrant上のCentOS6.4に対して実行してみました。

目的

  • supermarket.getchef.comから取得できるapache2のレシピを使い、apacheのインストールを行う
  • プロジェクト固有の設定を、apache2レシピに加筆することなく、独自のレシピを作成し、反映させる

Berksfile

source "https://api.berkshelf.com"

cookbook 'apache2'

apache2をインストールする

プロジェクト固有の設定を行うレシピを作成する

$ knife cookbook create my-httpdconf -o site-cookbook

テンプレートを編集する

apache2/templates/default/web_app.conf.erbをコピーし、作成したレシピのtemplates/default配下にペースト(名前はなんでもいいです。仮にmy-httpd.conf.erbとしておきます)

my-httpd.conf(短め)

LoadModule rewrite_module modules/mod_rewrite.so

DocumentRoot <%= "\'#{@params[:docroot]}\'" %>
SetEnv APPLICATION_ENV <%= @params[:env] %>

レシピを編集する

recipes/default.rb

include_recipe 'apache2'

web_app 'myproj' do
  template 'my-httpd.conf.erb'
  docroot '/service/htdocs'
  env 'development'
end

テンプレートのシンボルに対応した値がアサインされる。

run_list

{"run_list":[
  "recipe[my-httpdconf]",
  "recipe[apache2::mod_rewrite]"
]}

mod_rewrite使うのでそれを指定。

実行結果

実行すると、/etc/httpd/conf/httpd.confにapache2レシピの標準設定 + 作成したconfをincludeする旨が追記され、自前のconfが/etc/httpd/sites-enabled/myproj.confという形で配置され、httpdサービスの起動まで行われる。楽ちん!

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9