Re: [Puppet Users] modifying file(s) on the fly

Sans
2012-05-22T12:01:37Z

Thanks Den, Jo! I did it using template() now.

Cheers,
San


On Tuesday, May 22, 2012 11:10:39 AM UTC+1, Jo wrote:
>
> Use a template instead.  Then you can install the file already modified
> for the host.
>
> On May 21, 2012, at 2:33 PM, Sans wrote:
>
> 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!!
>
> --
> 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-users@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.
>
>
> --
> Jo Rhett
> Net Consonance : net philanthropy to improve open source and internet
> projects.
>
>
>
>
On Tuesday, May 22, 2012 11:10:39 AM UTC+1, Jo wrote:
>
> Use a template instead.  Then you can install the file already modified
> for the host.
>
> On May 21, 2012, at 2:33 PM, Sans wrote:
>
> 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!!
>
> --
> 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-users@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.
>
>
> --
> Jo Rhett
> Net Consonance : net philanthropy to improve open source and internet
> projects.
>
>
>
>
On Tuesday, May 22, 2012 11:10:39 AM UTC+1, Jo wrote:
>
> Use a template instead.  Then you can install the file already modified
> for the host.
>
> On May 21, 2012, at 2:33 PM, Sans wrote:
>
> 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!!
>
> --
> 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-users@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.
>
>
> --
> Jo Rhett
> Net Consonance : net philanthropy to improve open source and internet
> projects.
>
>
>
>
On Tuesday, May 22, 2012 11:10:39 AM UTC+1, Jo wrote:
>
> Use a template instead.  Then you can install the file already modified
> for the host.
>
> On May 21, 2012, at 2:33 PM, Sans wrote:
>
> 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!!
>
> --
> 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-users@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.
>
>
> --
> Jo Rhett
> Net Consonance : net philanthropy to improve open source and internet
> projects.
>
>
>
>

--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To view this discussion on the web visit