- From: Sean OMeara <
>
- To:
- Subject: [chef] Re: Re: Re: Re: Re: Re: Inserting multiple lines through Chef::Util::FileEdit
- Date: Wed, 27 Feb 2013 14:00:39 -0500
Hontestly, these libs are in a need of some love.
I have some "file a ticket" tasks in my GTD that I plan to get around to soon.
-s
On Wed, Feb 27, 2013 at 3:30 AM, Oleg Volotov
<
>
wrote:
>
The methode 'insert_line_if_no_match(...)' calls only the private one
>
'search_match(...)' with the right parameters. This methode makes his
>
changes only in the variable 'contents'. Try to make a 'f.write_file' after
>
every call of 'insert_line_if_no_match(...)'.
>
>
> About the mount resource:
>
> This was some time ago, but I couldn't get the mount resource to create an
>
> fstab entry. My action is "action [:mount, :enable]", but it doesn't seem
>
> to do anything to the fstab. I haven't tried to debug it in a while, I'll
>
> dig into it and see what was the problem that led me to use FileEdit.
>
>
>
> If it helps, what I'm mounting is an amazon EBS volume with non-default
>
> formatting (xfs), attached to my instance during runtime by the right-aws
>
> gem.
>
>
>
>
>
> On Wed, Feb 27, 2013 at 1:44 AM, Jesse Nelson
>
> <
>
>
> wrote:
>
>
>
> > Is it not possible to use the mount resource to manage these entries in
>
> > your fstab ?
>
> >
>
> >
>
> > On Tue, Feb 26, 2013 at 5:40 AM, Joseph Bowman
>
> <
>wrote:
>
> >
>
> >> I've had to do this a lot recently starting to set up our base builds
>
> as
>
> >> we move to chef. I've just used embedded bash scripts to get the
>
> results
>
> >> I've needed. This is just taking an example from you original email,
>
> please
>
> >> check for typos and such before using it. I wrote it out in this email,
>
> so
>
> >> it's completely untested.
>
> >>
>
> >> bash "update_fstab" do
>
> >> code <<-EOH
>
> >> EBS_VOL_DEV_CHECK = $(grep '#{node['mysql']['ebs_vol_dev']} /'
>
> >> /etc/fstab | wc -l)
>
> >> if [ $EBS_VOL_DEV_CHECK -lt 0 ]; then
>
> >> echo '#{node['mysql']['ebs_vol_dev']}
>
> >> #{node['mysql']['mount_point']} #{node['mysql']['formatting']} noatime
>
> 0 0'
>
> >> >> /ec/fstab
>
> >> fi
>
> >> EOH
>
> >> end
>
> >>
>
> >> You'd want to update the code block for each instance. I used this to
>
> >> manage files fstab, hosts and such. Albeit I'm much more comfortable
>
> with
>
> >> bash than ruby.
>
> >>
>
> >>
>
> >>
>
> >> On Tue, Feb 26, 2013 at 8:14 AM, Pete Cheslock
>
> <
>wrote:
>
> >>
>
> >>> 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.