KB)本連載は、SI業界に入ったばかりの新米業務アプリケーション開発者や、SI業界を目指す学生さんを対象とした、インフラ構成管理ツールを使ってコードでインフラを構築するための講座です。インフラエンジニア/システムオペレータで、物理環境でのインフラ構築/運用管理は経験があるけど、プログラミングが苦手という方にも読み進めていただけるように、文法などの解説を入れながら説明します。本連載では、Vagrant/Chef/Dockerをつかって簡単なインフラを構築していきます。今回は、Chefを使ってローカルにWebアプリの開発環境をつくる方法について説明します。Chefの導入の仕方、Chefを使ったパッケージのインストール手順について紹介しました。httpdの設定ファイルの作成やWebサーバにデプロイするファイルの設定などを紹介します。次の方を対象にしています。httpdおよびPHPのインストールが出来たので、次は設定ファイルの作成やデプロイするファイルの配置などを行うCookBookを作成していきます。httpdの各種設定を行うファイルは「httpd.conf」です。このhttpd.confにはインストール時にはデフォルトのファイルが自動生成されますが、このファイルを環境に合わせて変更する必要があります。Chefは設定ファイルのテンプレートや設定したい値をあらかじめ用意しておくことで、任意のファイルを生成することができます。テンプレートから設定ファイルの生成たとえば、httpサーバの管理者のメールアドレスやホスト名などを環境に合わせて生成して仮想環境に展開したい場合は、次の手順でCookBookを作成します。生成したいhttpd.confのテンプレートとなるファイルを以下の場所に置きます。拡張子はRubyのテンプレートファイルの拡張子である「erb」にします。E:\chef-sample\httpserver\apache\templates\default\httpd.conf.erb次に、配置したテンプレートであるhttpd.conf.erbを以下のように修正します。%>:80~中略これは、設定ファイル中のServerAdminおよびServerNameの値をChefで指定した@adminおよび@servernameという属性の値に書き換えるという意味になります。次に、これらの属性値を定義します。Chefでの属性値は以下のファイルに定義します。E:\chef-sample\httpserver\apache\attributes\default.rbこのファイルに以下のように属性値を記述します。'www.test-domain.com'これは、apacheという名前のCookBook配下のadminおよびservernameという属性を、'root@test-domain.com'および'www.test-domain.com'に置き換えるという意味になります。最後に、このテンプレートと属性値からhttpd.confを生成するレシピを書きます。レシピは以下のファイルです。)endこのコードは、sourceで指定したテンプレートをもとにして、pathで指定した"/etc/httpd/conf/httpd.conf"を生成し、variablesで属性値を変数として割り当てます。生成したファイルの属性を以下のように指定しています。ファイルのアクセス権を0644にする(所有者は読み書き可能/グループおよび他のユーザは読みのみ可)テンプレートの詳細については以下の公式サイトを参照してください。