CentOS6.3の初期状態ではiptablesによりlocalhost以外からのアクセスを弾くような設定になっています。Chefを使ってVMにWebサーバーを入れてもホストOSから確認できなくて困りました。
入門Chef Soloでは「VMだからiptables切っちゃえばいいよ」と書いてありましたが、せっかくだからChefでやる方法を探しました。
OPSCODEのcookbookを使う
[http://community.opscode.com/cookbooks:image:large]
OPSCODEのコミュニティで色々なcookbookが公開されています。よくあるサーバーの設定はほとんど見つかります。とは言ってもブラックボックスすぎてわけわからなくなるので、Chefに慣れるまではなるべく自分で書いたほうがよさそうです。naoya氏がそう言ってます。
でもiptableぐらいはいいよね?ファイル書き換えるだけだし。と判断し、公開されているcookbookを使いました。
使うための準備はこちら。
knifeでOPSCODEのCookbookを使う - ぴよログ
[https://blog.piyo.tech/posts/2013-04-16-120000:image:large]
手順
とにかくダウンロード。
$ 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行を追加
対象のノード(今回はvagrantのVM)のjsonファイルを書き換え。
{
"run_list":[
"iptables",
]
}
これでChefを流せばiptablesの設定が変わり、ウェブサーバーの動作確認などができるようになります!
$ knife solo cook vagrant@192.168.33.10