On Jan 11, 3:41 pm, Sébastien Prud'homme <sebastien.prudho...@gmail.com> wrote: > Thanks for the responses. My example is just an example. My real > "define" has some parameters so it's not possible to use a class.
Whether 'mydefine1' has parameters is irrelevant to whether you can achieve your configuration goal by putting the package declaration into a class. Are you trying to say that the parameters to 'mydefine1' are used to set properties of the Package resource? That cannot work if 'mydefine1' is called more than once with different parameters. Resources describe the desired state of the system, so it doesn't even make sense to declare the same resource differently in different parts of the same catalog. It is impossible to accommodate multiple different specifications, because a resource can have only one state at a time. On the other hand, if the parameters for the package will be the same every time 'mydefine1' is called within each given node's catalog, then you definitely can put the package declaration (virtual or not) into a class. You don't have to convert 'mydefine1' into a class, as our examples show: you can put the package into an existing class if there's a suitable one, or you can create a new class for it, as in the example. It is still quite possible to customize the package's parameters for each node. You may need to rearrange your manifests more than you hoped before they work, but there is no avoiding the prohibition against multiple declarations of the same resource. We may be able to provide better help if you are more specific about what you're trying to do.
-- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-us...@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.