Webページの配置
Webサーバに、作成したHTMLなどのコンテンツを配置します。まず、配置したいファイルを以下の場所に格納します。
E:\chef-sample\httpserver\apache\files\default\
今回は、PHPの動作確認をするために、<?php phpinfo(); ?>のみがコーディングされたindex.phpを格納します。
次に、このindex.phpを配置するためのレシピを書きます。レシピは以下のファイルです。
E:\chef-sample\httpserver\apache\recipes\default.rb
# 5. Webページの配置 cookbook_file "/var/www/html/index.php" do source "index.php" group "root" owner "root" mode "0644" end
ファイルを配置するときはcookbook_fileリソースを使います。配置先のファイル(/var/www/html/index.php)を指定し、CookBookに用意したファイルをsourceで指定します。ファイルの属性もテンプレートと同様に設定します。
cookbook_fileリソースをつかうとファイルに対して次のようなことができます。
設定出来る内容 | 説明 |
---|---|
action :create | ファイルの作成 |
action :create_if_missing | ファイルがなければ作成 |
action :delete | ファイルの削除 |
詳しくは以下の公式サイトを参照してください。
Apacheサービスの起動
最後に、Apache httpdのサービスを起動するためのレシピを記述します。
# 4. Apacheのサービス起動 service "httpd" do action [ :enable, :start ] end
サービスの起動は、serviceリソースで行います。指定したserviceに対して、すぐに起動させるときは:start、再起動時も自動起動させたいときは:enableをactionに指定します。
serviceリソースをつかうと次のようなことができます。
設定出来る内容 | 説明 |
---|---|
action :start | サービスの起動 |
action :stop | サービスの停止 |
action :enable | サービスの自動起動を有効 |
action :disable | サービスの自動起動を無効 |
action :reload | サービスの設定ファイルの再読み込み |
action :restart | サービスの再起動 |
詳しくは以下の公式サイトを参照してください。
冪等性とは、ある操作を1回行っても複数回行っても同じ結果になるという概念のことです。Chefは、基本的には冪等性が保障されています。たとえば、Apache httpdを何度もインストールするようレシピを作成したとしても、実際にインストールされるのは1度だけです。ただし、CookBookの書き方によっては、冪等性が保障されなくなる場合もあるので注意が必要です。
また、インフラの構成を変更するときは、すでに稼働しているサーバ群にログインして設定を直接変更するのではなく、必ずサーバを構築するもとになったCookBookおよびRecipeを修正してインフラを再構築してするようにしてください。そうしないと、業務システムでよくありがちな「設計書と実際に動いているコードが違う!」という状態になってしまいます。