John: Very concise and helpful answer, thank you very much for your time!
Best regards from Montevideo, Guzmán On Mon, Oct 22, 2012 at 12:37 PM, jcbollinger <john.bollin...@stjude.org>wrote: > > > On Sunday, October 21, 2012 6:02:39 PM UTC-5, Guzmán Brasó wrote: >> >> John, >> >> I'm new to puppet and your mails confuse me a little bit... if >> parameterized classes are not recommended and you suggest when dealing with >> someone else parameterized class to set it through hiera (Puppet 3). >> Then I don't understand how to proceed with puppet 2 modules... >> > > > Here are some of your better choices, none of them especially good: > > 1. Upgrade your master to Puppet 3. The clients can stay at 2.7 if > you wish. > 2. Avoid third-party modules whose interfaces involve parametrized > classes, unless they have built-in hiera support. > 3. Be very careful and deliberate with the placement of your > parametrized-style class declarations, and expect to troubleshoot parse > order issues from time to time. > > > >> >> Should I hack every module I need to set the defaults inside the module? >> > > > That's an option too, but I wouldn't recommend it. > > >> >> And if making a module, without using parameters, how I can reuse the >> module with different defaults ? Should I create a different params.pp for >> each scenario I need and then include it inheriting each one of the >> defaults, this would be a mess to deal with large arquitectures with many >> different types of nodes. >> > > > That is what hiera is for. Although not integrated into the core until > Puppet 3, hiera is a widely-used add-on to Puppet 2. Instead of > > class mymodule::foo ( > $param1 = 'default1', > $param2 = 'default2' ) { > # declarations > } > > I recommend some variation on > > class mymodule::foo { > $param1 = hiera('foo::param1', 'default1') > $param2 = hiera('foo::param2', 'default2') > # declarations > } > > Then put any needed 'parameter' customizations into your hiera data. That > way not only can you avoid parametrized-style class declarations, but you > also achieve separation of your data from your code. > > > >> >> I'm sorry to ask but since we started using puppet (a few months ago) we >> started doing everything with parameters as puppet docs said on >> http://docs.puppetlabs.com/**guides/parameterized_classes.**html<http://docs.puppetlabs.com/guides/parameterized_classes.html> >> and >> since then we had no issue (yet) with it. And now you say that parameters >> are a sickness and should not be used. Then how on Puppet 2? And why it's >> still puppet docs still recommending it? >> >> > Puppetlabs heavily promoted parametrized classes starting with their > release as part of Puppet 2.6. Evidently, they perceived and continue to > perceive substantial demand for such a feature. That doesn't mean it was > ever a good idea. > > Having promoted the feature so effectively puts PuppetLabs in a difficult > position. At least some of their people will acknowledge the problems with > parametrized classes, at least in Puppet 2.x. I can only speculate about > company policy here, but it would be reasonable for PL to judge that doing > an about-face on parametrized classes could present credibility and trust > issues for the company. > > PL put a lot of effort into improving parametrized classes for Puppet 3, > and they are indeed better. As I have lately written, I think the result > rescues a lot of parametrized classes that are already in use. That > doesn't mean that it's a good idea to write new parametrized classes even > for Puppet 3, however. > > And of course, a lot of people are using parametrized classes > successfully. My argument has never been that they don't work, only that > they exact unneeded costs in productivity and stability relative to the > best available alternative. Those costs will scale with the number of > dependencies between classes. > > > John > > -- > 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/-/r53hq-Tk8CsJ. > > To post to this group, send email to puppet-users@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. > -- GuruHub - Guzmán Brasó http://www.guruhub.com.uy - +59898674020 Rivera 3565 - CP11400 - Montevideo, Uruguay -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@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.