前回はファイアウォールの設定が必要だというところで終わりましたが、ファイアウォールであるiptablesの操作を行うcookbookも提供されています。これも、cookbooksディレクトリにダウンロード展開します。
cookbooks$git clone git://github.com/opscode-cookbooks/iptables.git
このcookbookは/etc/iptables.dに設定用のファイルをコピーし、その後そのファイルを使ってiptablesを設定します。
既定では確立済みのセッションを許可するall_established.erbというテンプレートと、ICMPプロトコルを許可するall_icmp.erbだけが設定されます。HTTPを許可するためには下記のファイルを用意します。
cookbooks/main/templates/default/http.erb
# Port 80 for http
-A FWR -p tcp -m tcp --dport 80 -j ACCEPT
ただ、これではSSHによる接続もできなくなるので、これを許可するテンプレートも用意します。
cookbooks/main/templates/default/ssh.erb
# Port 22 for ssh
-A FWR -p tcp -m tcp --dport 22 -j ACCEPT
つぎに、cookbooks/main/recipes/default.rbに、iptablesのレシピと、上記の2つのファイルを設定するためのメソッド呼び出しを追加します。
cookbooks/main/recipes/default.rb
include_recipe "selinux::permissive"
include_recipe "apache2"
include_recipe "iptables"
iptables_rule "ssh"
iptables_rule "http"
これでrsyncとsshによるchef-solo実行を行えば、http://192.168.1.1/でApacheのでファオルトページが表示されるはずです。