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
1iptables_rule "all_established"
2iptables_rule "all_icmp"
3
4iptables_rule "http" # これと
5iptables_rule "ssh" # この2行を追加
対象のノード(今回はvagrantのVM)のjsonファイルを書き換え。
1{
2 "run_list":[
3 "iptables",
4 ]
5}
これでChefを流せばiptablesの設定が変わり、ウェブサーバーの動作確認などができるようになります!
1$ knife solo cook vagrant@192.168.33.10