Template populated from multiple defines

33 views
Skip to first unread message

Jared Curtis

unread,
May 4, 2012, 11:23:23 PM5/4/12
to puppet...@googlegroups.com
I'm trying to create a file similar to this
<Users "admin">
  <user "user1">
    Name User One
    Phone 1112223333
  </user>
  <user "user2">
    Name User Two
  </user>
</Users>

I want to be able to add users in this fashion
app::users { 
  'user1': name => 'User One', phone => '1112223333';
  'user2': name => 'User Two';
}
Then use a template to create the actual file. I've done something similar to this in the past by using hashes but it seems like a hack and doesn't cleanly express what variables are available to be set.

Anyone have any suggestions on the best way to make this work?

jcbollinger

unread,
May 7, 2012, 12:50:26 PM5/7/12
to Puppet Users
I know no good way to make it work. An instance of a defined type
represents something managed on the client, whereas a template is
evaluated on the server. It may be that you could cobble the two
together, but in the end you'd just be putting a complicated wrapper
around exactly the same thing you were doing before. I don't see what
would be gained.


John

Gabriel Filion

unread,
May 7, 2012, 4:09:42 PM5/7/12
to puppet...@googlegroups.com
The only way that I could think of doing this would be by using a
concatenated file[1]. Each define would create a morcel that would get
concatenated to the "main part" (rest of the structure) for the final
result.

https://github.com/ripienaar/puppet-concat

--
Gabriel Filion
Reply all
Reply to author
Forward
0 new messages