ぴよログ

↓に移転したのでこっちは更新されません、多分。

Chefを使ってiptablesの設定を変える

移転しました →

CentOS6.3の初期状態ではiptablesによりlocalhost以外からのアクセスを弾くような設定になっています。Chefを使ってVMにWebサーバーを入れてもホストOSから確認できなくて困りました。

入門Chef Soloでは「VMだからiptables切っちゃえばいいよ」と書いてありましたが、せっかくだからChefでやる方法を探しました。

OPSCODEのcookbookを使う

Opscode Community

screenshot

OPSCODEのコミュニティで色々なcookbookが公開されています。よくあるサーバーの設定はほとんど見つかります。とは言ってもブラックボックスすぎてわけわからなくなるので、Chefに慣れるまではなるべく自分で書いたほうがよさそうです。naoya氏がそう言ってます。

でもiptableぐらいはいいよね?ファイル書き換えるだけだし。と判断し、公開されているcookbookを使いました。

使うための準備はこちら。

knifeでOPSCODEのCookbookを使う - PILOG

screenshot

手順

とにかくダウンロード。

$ cd chef-repo
$ knife cookbook site vendor iptables

./cookbooks/iptables として配置されます。

HTTPとSSHを許可するため、次のような設定が必要です。

# HTTP
-A FWR -m tcp -p tcp --dport 80 -j ACCEPT
# SSH
-A FWR -m tcp -p tcp --dport 22 -j ACCEPT
iptables_rule "all_established"
iptables_rule "all_icmp"

iptables_rule "http" # これと
iptables_rule "ssh"  # この2行を追加

対象のノード(今回はvagrantVM)のjsonファイルを書き換え。

{
    "run_list":[
    "iptables",
    ]
}

これでChefを流せばiptablesの設定が変わり、ウェブサーバーの動作確認などができるようになります!

$ knife solo cook vagrant@192.168.33.10