Seperti yang Anda katakan sendiri, pola Chef yang disarankan adalah mengelola seluruh file.
Jika Anda menggunakan Chef 11, Anda mungkin dapat menggunakan sebagian untuk apa yang ingin Anda capai.
Ada info lebih lanjut di sini dan di buku masak contoh ini.
Selama Anda memiliki akses ke template konfigurasi asli, cukup tambahkan <%= render "original_config.erb" %>
ke bagian atas parms_to_append.conf
Anda templat.
Seperti yang dikatakan sebelumnya, menggunakan templat dan sebagian adalah cara yang umum untuk melakukan ini, tetapi koki mengizinkan menambahkan file, dan bahkan mengubah (mengedit) baris file. Lampiran dilakukan menggunakan fungsi berikut:
- insert_line_after_match(regex, baris baru);
- insert_line_if_no_match(regex, baris baru)
Anda dapat menemukan dan memberi contoh di sini di stackoverflow, dan dokumentasi lengkap di rubydoc.info
Harap gunakan dengan hati-hati, dan hanya jika sebagian dan template tidak sesuai.
Saya melakukan sesuatu seperti ini:
monit_overwrites/templates/default/monitrc.erb:
#---FLOWDOCK-START
set mail-format { from: [email protected] }
#---FLOWDOCK-END
Dalam resep saya, saya melakukan ini:
monit_overwrites/recipes/default.rb:
execute "Clean up monitrc from earlier runs" do
user "root"
command "sed '/#---FLOWDOCK-START/,/#---FLOWDOCK-END/d' > /etc/monitrc"
end
template "/tmp/monitrc_append.conf" do
source "monitrc_append.erb"
end
execute "Setup monit to push notifications into flowdock" do
user "root"
command "cat /tmp/monitrc_append.conf >> /etc/monitrc"
end
execute "Remove monitrc_append" do
command "rm /tmp/monitrc_append.conf"
end