modifying file(s) on the fly

52 views
Skip to first unread message

Sans

unread,
May 21, 2012, 5:33:46 PM5/21/12
to puppet...@googlegroups.com
Dear all,

I'm trying to figure out how to do this - first copy a "common" file to every node and then modify the file according to the node type. I've tried this:


if $node_type == 'wn' {
        $port = '8649'
        $desc = 'Worker Nodes'
}

exec {   
    'n_desc':   
    command     => "sed -ic '/cluster {/,/}/s/name = \"[^\"]*\"/name = \"\'\"$desc\"\'\"/' '$fname'",
    subscribe   => File["$fname"],
    refreshonly => false;

    'n_port':
    command     => "sed -ic '/port\ =\ /{s:[0-9]*$:$port:g}' '$fname'",
    subscribe   => File["$fname"],
    refreshonly => false;
}

file {
    'gmond.conf':
     name    => "$fname",
     source  => 'puppet:///modules/ganglia/gmond.conf',
     require => Exec['n_desc','n_port'],
     notify  => Service['gmond'];
}


The problem is the Exec['n_desc','n_port'] is being executed but then it changing back to the original one as supplied by:  source  => 'puppet:///modules/ganglia/gmond.conf', which is definitely not what I want. How can I make sure it copy the file first and then make the changes? Or, simply how do I do that? Cheers!!

Denmat

unread,
May 22, 2012, 4:02:59 AM5/22/12
to puppet...@googlegroups.com
Hi,

I think templates would be easier to manage in this setup. 


It will give good flexibility. It the way I have managed my ganglia setup.

Cheers,
Den
--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/9XQhRACkvOEJ.
To post to this group, send email to puppet...@googlegroups.com.
To unsubscribe from this group, send email to puppet-users...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.

Sans

unread,
May 22, 2012, 4:45:33 AM5/22/12
to puppet...@googlegroups.com
Yes, I did think about using template one point.
So, do you generate the entire file using "template"? For us, it's just a few lines to change in the default gmod.conf file.

cheers,
San
To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.

Denmat

unread,
May 22, 2012, 5:48:42 AM5/22/12
to puppet...@googlegroups.com
Yep. Templates are just normal files that go through the ERB parser so you can make adjustments on the fly.  And it appears you are trying to push out the file anyway (using the source => param) so it seems like a good fit to me.

Cheers
Den
To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/YE5OjdOlY3oJ.

To post to this group, send email to puppet...@googlegroups.com.
To unsubscribe from this group, send email to puppet-users...@googlegroups.com.

Jo Rhett

unread,
May 22, 2012, 6:10:39 AM5/22/12
to puppet...@googlegroups.com
Use a template instead.  Then you can install the file already modified for the host.

--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/9XQhRACkvOEJ.
To post to this group, send email to puppet...@googlegroups.com.
To unsubscribe from this group, send email to puppet-users...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.

-- 
Jo Rhett
Net Consonance : net philanthropy to improve open source and internet projects.



Sans

unread,
May 22, 2012, 8:01:37 AM5/22/12
to puppet...@googlegroups.com
Thanks Den, Jo! I did it using template() now.

Cheers,
San
To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Reply all
Reply to author
Forward
0 new messages