You are getting a bunch of misguided answers to this. I'm also perplexed by your assertion that external nodes requires you to write custom scripts to parse node manifests.
No, you cannot put resources directly into nodes when you are using external nodes. In practice, this hasn't mattered; you wrap your resources in a class, done. What you gain is truly node-scoped variables (AWESOME). Contrary to Ken's assertion about global variables, instead you have your external node script place variables into the output YAML; these variables are then available to all the classes and resources that apply to that node. You don't have to do any parsing of manifests at all. Here's Digg's external node script: http://github.com/digg/clusto/blob/master/src/scripts/clusto-puppet-node It does no parsing of manifests. It also demonstrates some other things you get using external nodes; the ability to enforce environments on your clients, for example (useful if you want it), or the ability to determine your own model of node inheritance (actually not very obvious in that code, but we manage inheritance using clusto pools, so the attributes a node end up with are usually defined at the pool level rather than on the individual node). External nodes is 100% awesome, I think you just haven't taken the time to really understand it. --Paul On Thu, May 13, 2010 at 10:04 AM, Douglas Garstang <doug.garst...@gmail.com> wrote: > On Thu, May 13, 2010 at 9:53 AM, Ken <k...@bob.sh> wrote: >> Yes your write - you can only really do the equiv of: >> >> node foo { >> $bar = "bleah" >> include some_class >> } >> >> No resources. So really your left using a swarm of global vars that >> can passed down to the resources you have show above which are stored >> in a class. So something like: > > OMG. That's absolutely awful! > >> >> node foo { >> $software1_version = "t.981-1" >> $software1_addons = "1.6-1" >> include my_software >> } >> >> Which works - but is less then ideal because your muddy you have a >> muddy global namespace. >> >> However - one solution is being addressed in Rowlf with parameterized >> classes I believe - which at least allow you to group vars as apposed >> to using global vars. So something like: >> >> node foo { >> include some_class { >> param1 => "foo", >> param2 => "bar", >> } >> } >> >> Will be possible using external nodes I believe. I seem to recall >> Puppet Dashboard (the gui that provides external node support) also >> being able to support this. >> >> ken. > > Back to parsing the node manifest until external nodes mature a bit. > > Thanks. > > -- > 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. > > -- 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.