On Wed, Nov 2, 2011 at 3:43 AM, Peter Meier <[email protected]> wrote: >> Thanks Chris, that's helpful. I am wondering if I should be mixing >> Ruby DSL manifests with the Puppet DSL manifests. Is there any >> recommended practice for keeping both styles together? > > Afaik you can mix both DSL. If one file in a module ends with .rb it's > ruby dsl, if it ends with .pp it's puppet dsl. Obviously they shouldn't > have the same name. > > But if you only use modules and follow the autoloading rules (one > define/class per file with the same name as the filename/heirarchy) you > won't name a file twice with the same name anyway. > >> Also, does Ruby >> DSL get converted into Puppet DSL before execution? > > Both, puppet and ruby DSL get compiled as a catalog, which is then sent > to the client and applied there. The same goes for the standalone mode, > where the client just applies the catalog it compiled before. So in both > ways they end up in the same abstract target, called catalog. > > If you're switchting to client/server mode, the only thing that you need > to consider is that ruby-dsl files (as the puppet dsl files) are parsed > and compiled on the master. This means that if you have in these > ruby-dsl files any file-operations, binary executions etc. without using > the proper puppet providers, your ruby code will be executed on the > master. As it goes with puppet functions, that are also executed on the > master at compile time. > > So having the idea of querying DBs FROM the client while applying the > catalog (not to mix with compiling the catalog) or do any other magic > using ruby code, won't work, as this code will always be executed on the > master. > > The client just gets a fixed compiled catalog it applies, nothing else. > > ~pete > >
Thanks for explaining it in detail Peter. The Ruby DSL manifest includes some binary executable operations, but they are in Puppet context (using Puppet's exec type). - thanks neubyr -- 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.
