- 更新日: 2014年11月2日
- Vagrant & Chef
Chefで/etc/sysctl.confのkernel.panicを設定
サーバーで致命的なエラーが起こった場合に、サーバーを10秒後に自動で再起動させる設定を行います。具体的には、Chef の recipe で kernel.panic を設定します。
kernel.panic を設定し、エラー時にサーバーを自動リブート の設定を、Chef で自動化する手順となります。
このエントリーは、CentOS サーバー設定用 Chef Cookbook/Recipe の目次 の一部です。
kernel.panic を10秒に設定する recipe
/etc/sysctl.conf の kernel.panic を10秒に設定します。
site-cookbooks/base_cookbook/recipes/kernel_panic.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# need to reboot sysctl_conf = "/etc/sysctl.conf" bash 'copy_sysctl_conf_original' do code <<-EOC cp #{sysctl_conf} #{sysctl_conf}.org EOC creates "#{sysctl_conf}.org" end bash "set_kernel_panic" do not_if "cat #{sysctl_conf} | grep '^kernel.panic = 10$'" code <<-EOC echo 'kernel.panic = 10' >> #{sysctl_conf} EOC end |
/etc/sysctl.conf のオリジナルをバックアップ後、kernel.panic = 10 の設定を追加しています。
再起動あるいは # sysctl -p
コマンドを実行
あとは、run_list に recipe を追加してプロビジョニングを実行すれば終了です。
注意点としては、コメントに書いていますが、この設定を変更した後は kernel.panic の値を反映させるためにサーバーの再起動を行う。
あるいは、
1 2 3 |
# sysctl -p |
のコマンド実行を recipe に追記すれば良いかと思います。このコマンドによって、kernel.panic に設定した値が反映される。私は、初回のプロビジョニング終了後に、サーバーを再起動させる方針にしてます。
- Vagrant & Chef の関連記事
- Vagrantで使うVirtualBoxのVM(仮想マシン)を外付けHDDに移動
- Chefでtelnetをインストール
- Chefでyumリポジトリを追加する設定
- Chef で iptables の設定
- ChefでSSH接続用の公開鍵をサーバーに設置
- nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
- Chef Recipe でユーザー・グループを作成
- Chef Recipe で CentOS のネットワーク・ホストを設定
- NetworkManager 他不要なパッケージを削除する Chef Recipe
- CentOS サーバー設定用 Chef Cookbook/Recipe の目次
Leave Your Message!