「chef-solo を使って ntpd をインストール | hiro345」で紹介をしましたが、サーバのセットアップで chef-solo を使うと何かと便利です。日々のサーバセットアップについて、その場でやっていた作業が記録として残しやすく、同じ環境を再構築するのに使えるからです。もちろん、若干面倒なところもありますが、ステージングサーバで試しにセットアップしてから、本番サーバで同じ環境を構築するといったときに最大の威力を発揮します。
ところで、chef-solo でコマンドを実行したいときがあります。たとえば、SELinuxを使っていて「setsebool -P httpd_enable_cgi on」のようなコマンドを実行したいときです。そんなときは下記のようにできます。not_if と組み合わせると、すでに有効だったらスキップするといったこともできます。cookbooks/selinux/recipes/default.rb とかに記述します。
execute "enable httpd_enable_cgi" do not_if "getsebool httpd_enable_cgi | awk {'print $3'} | egrep -qx 'on'" command "setsebool -P httpd_enable_cgi on" action :run end
Linux, SELinuxなどについて理解するには下記の参考書が役に立ちます。