[chef] Re: Inserting multiple lines through Chef::Util::FileEdit


Chronological Thread 
  • From: Pete Cheslock < >
  • To: " " < >
  • Subject: [chef] Re: Inserting multiple lines through Chef::Util::FileEdit
  • Date: Tue, 26 Feb 2013 08:14:39 -0500

Ive never used fileedit before. You should just use a template to render out 
the file as you need.  It will likely solve your problem. 



On Feb 26, 2013, at 6:25 AM, Prajwal Manjunath 
< >
 wrote:

> Hi,
> 
> I'm trying to use the FileEdit util to modify my fstab, but it doesn't seem 
> to work as expected.
> 
> This is essentially my code:
> 
>   ruby_block "setup fstab" do
>     not_if "cat /etc/fstab | grep #{node['mysql']['mount_point']} > 
> /dev/null"
>     block do
>       f = Chef::Util::FileEdit.new('/etc/fstab')
>       f.insert_line_if_no_match(/^#{node['mysql']['ebs_vol_dev']} /, 
> "#{node['mysql']['ebs_vol_dev']} #{node['mysql']['mount_point']} 
> #{node['mysql']['formatting']} noatime 0 0")
>       f.insert_line_if_no_match(/^#{node['mysql']['ebs_data_dir']} /, 
> "#{node['mysql']['ebs_data_dir']} #{node['mysql']['data_dir']} none bind")
>       f.insert_line_if_no_match(/^#{node['mysql']['ebs_binlog_dir']} /, 
> "#{node['mysql']['ebs_binlog_dir']} #{node['mysql']['data_dir']} none bind")
>       f.write_file
>     end
>     notifies :run, "execute[mount_all]", :immediately
>   end
> 
> However, this only adds the first insert_line_if_no_match into the file. I 
> confirmed this by removing the first command and it inserted the second one.
> 
> Is this by design? Am I really not supposed to run multiple 
> insert_line_if_no_match commands in one block on one file?



Archive powered by MHonArc 2.6.16.

§