ファイルを編集する場合、主にTemplateリソースを使用する。しかし、一部の定義のみ入れ替えたい、ファイルを丸ごと入れ替えたくない、といった場合には、ruby_block+FileEditユーティリティが役立つ。 以下は、”net.core.somaxconn"(カーネルがキューイング可能なパケットの最大個数)が定義されていなかった場合、ファイルの最終行に定義を追加、最後にリロードするというもの。 ruby_block "Edit /etc/sysctl.conf" do block do rc = Chef::Util::FileEdit.new("/etc/sysctl.conf") rc.insert_line_if_no_match(/^net.core.somaxconn.*$/, "net.core.somaxconn = 1000" rc.write_file end no