On Thu, Sep 22, 2011 at 02:24:45PM -0700, jcbollinger wrote:
>
> You are missing the obvious:
I had a feeling I might be.
> anything in your manifests themselves is at least potentially
> available to all nodes. Taking your e-mail address example, you
> can do this:
>
> class email {
> $addresses = {
> 'alice' => '[email protected]',
> 'bob' => '[email protected]',
> ...
> 'zoe' => '[email protected]'
> }
> }
>
> There's your data store. You can then remove the 'email'
> parameter from users::normal, and instead have it look up the
> e-mail address:
>
> define users::normal ($id) {
> $email = $email::addresses[$name]
> ...
> }
>
> And the whole of $email::addresses is sitting there for any node
> that wants it.
That's pretty excellent. Thank you.
> Why then, you may ask, are exported resources useful? Why not
> take a fully data-driven approach along the lines above? I'm glad
> you asked. Exported resources can do something that the above
> approach cannot: their properties and even their very existence
> can depend on the facts pertinent to the nodes exporting them. If
> you are considering a use of exported resources that doesn't
> somehow leverage that characteristic, then you are looking at the
> wrong tool.
Where I've found them useful, fwiw, is for /etc/hosts and
ssh_known_hosts.
Although even that could probably be put into a data-driven external
something or other.
-Robin
--
http://singinst.org/ : Our last, best hope for a fantastic future.
Lojban (http://www.lojban.org/): The language in which "this parrot
is dead" is "ti poi spitaki cu morsi", but "this sentence is false"
is "na nei". My personal page: http://www.digitalkingdom.org/rlp/
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.