You can use concat fragments to specify the order of stanzas or lines.

Forgive the pseudo code below but you should be able to get the idea

concat::fragment { original_file:
               order => 10,
concat::fragment { other_stuff:
               order => 50,

concat::fragment { last_line:
               order => 99,

This will allow you to specify a file where other admins can edit
"original_file" and you can concat your changes in whatever order you want.

On Wednesday, December 4, 2013 5:37:26 PM UTC-6, Stack Kororā wrote:


I am currently managing a configuration file for an application with
puppet+file_line and so far everything is going well. I have about 30 rules
that I need to ensure are in the configuration file. The tricky part is
that the rest of the file I don't care about but some admin somewhere
*does*. I, as the puppet module dev/admin, may not care about "$someline"
but AdminA may need "$someline" to exist where AdminB may need "$someline"
to _not_ exist and AdminC may need "$someline" to exist with a different
value associated with it (!). Due to this complexity I have given up trying
the template route (maybe I am doing it wrong...but it was a pain trying to
deal with all the different parameters...I didn't get far before it was
over my head in complexity).

In short, I am managing 30 lines of a config file with puppet in a config
file that may be anywhere between 30-100 lines long depending on the
system, admin, and use.

So what is the problem? Well up till this last rule, I haven't cared what
order these rules exist in the config file. It generally doesn't make a
difference. But not the latest addition to these rules that I am supposed
to ensure exists. This new rule is kind of like an iptables "-A INPUT -j
DROP" rule for this application. If it is anywhere *but* the last line of
the file, then all the rest of the config lines are ignored. Thankfully the
program at least complains about this so we can fix it manually, but it
would be awesome if puppet would ensure that this line was /always/ the
last line of the file.

I tinkered with a few things (like anchors and stages) but the problem is
that if the line already exists and isn't at the end, nothing moves it to
the end.

Does anyone have any clever ideas on how to ensure that a line exists as
the very last item of a file? Or maybe there is a suggestion on a better
method of managing this config file?

You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/8255ddf3-053b-42b6-a4dc-5348fecf8d10%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Search Discussions

Discussion Posts


Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 2 of 4 | next ›
Discussion Overview
grouppuppet-users @
postedDec 4, '13 at 11:37p
activeDec 11, '13 at 5:17a



site design / logo © 2022 Grokbase