iptables や sshd の Chef recipe で notifies :restart を書くべきかどうか

あまりサーバーの状態をブラックボックス化させたくないので、Chef Cookbook/Recipe は基本自作するように努めているのですが、昨日ちょっと考えたことを書きます。iptables, sshd, network などの SSH 接続、ネットワーク周りなどサーバー構成の重要な部分について。

スポンサーリンク

iptables や sshd での notifies :restart

昨日 iptables 設定用の自作 Recipe を修正した時に考えたことです。iptables や sshd , network などネットワーク周りのサービス設定を Chef で自動化する場合に、設定ファイルを template や cookbook_file リソースで作成するわけですが、その時 notifies :restart の扱いをどうするべきか。以下のような notifies :restart の処理を書くべきかどうか、という問題を考えました。

iptables 用の recipe

sshd 用の recipe

何が問題としてひっかかったか

Chef の Recipe はローカル環境やテスト環境で試した後に本番環境に適用させるとはいえ、万が一ネットワーク周りの template, cookbook_file の設定ファイルにミスがあった場合、最悪 Cookbook 適用後に SSH ログインができなくなってしまうなどの恐れがあるのではないか・・・と。

iptables や sshd, network などのデーモンは、他ののデーモンより扱いを慎重にしないといけません。となると、保守的にサーバーを運用するとしたら、それらのデーモン(サービス)の Recipe では notifies :restart を書かずに、Recipe 修正後に手動でサービス再起動させるのでしょうかね…。

定石が分からなかったので、Chef コミュニティにある opscode 製 Recipe のソースを読んでみたところ、rebuild-iptables.erb で iptables サービスを再起動させているようです。

opscode-cookbooks/iptables: rebuild-iptables.erb

install_redhat メソッドが最後のほうで呼び出されています。まあ十分にテストされてるでしょうから大丈夫なのでしょうけど。iptables や sshd などはコミュニティの Cookbook を使ったほうが良いかもです・・・。

iptables Cookbook – Chef Supermarket

一応現段階では、私は iptables などネットワーク周りの自作の Recipe では、notifies :restart を書かないようにしました。とりあえず保守的に手動で restart させる方針で行こうかと。

スポンサーリンク
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!