On Mar 19, 2010, at 5:05 PM, Douglas Garstang wrote:

> On Fri, Mar 19, 2010 at 4:51 PM, Patrick <kc7...@gmail.com> wrote:
>> 
>> On Mar 19, 2010, at 4:36 PM, Douglas Garstang wrote:
>> 
>>> I've already broken it down as much as I can. The bottom class is
>>> calling the same definition 10 times to set up 10 instances of jboss
>>> on a single system, and another definition is running 10 times to
>>> setup 10 instances of tomcat on the same server (don't blame me...
>>> it's the way our software was built). So.... I can't really subclass
>>> that. It would be nice for clarity to break each definition into a
>>> separate file however. Poo.
>>> 
>>> Doug.
>>> 
>> 
>> I misunderstood the problem.  Here's something else that might be what you 
>> want.  You can "import" a .pp file.  You could put each computer in it's own 
>> computername.pp and include them all in nodes.pp or site.pp.  That's why 
>> nodes.pp is read.  This would all be in the manifests folder.  For instance, 
>> putting this:
>> 
>> import "nodes"
>> 
>> in site.pp will do something closer to what most people think of as 
>> "include" than the puppet include.  That what you want?
> 
> Patrick,
> 
> Hmmm.... tried that and it's doing something weird. I put an import
> "foo.pp" into my node file, and it looks like puppet is trying to auto
> import that foo.pp for every single node.
> 
> ie, I am seeing this...
> 
> Could not retrieve catalog: Puppet::Parser::AST::Resource failed with
> error ArgumentError: Duplicate definition: Elements::Customer[tfel0]
> is already defined in file
> /etc/puppet/manifests/nodes/fr.xxx.com/foo.pp at line 12; cannot
> redefine at /etc/puppet/manifests/nodes/fr.xxx.com/app07.pp:175 on
> node app07.fr.xxx.com
> 
> The app07.pp file doesn't even import foo.pp! It's in app01.pp. Bizarre.
> 
> Doug

Sounds like a communications problem between us.  Here's a more complete 
example.  Keep in mind that this isn't making anything much simpler.  It just 
moves it into more files.  Also, every node sees every file.

site.pp:
#global site definitions
import "nodes"
#end site.pp----------------------


nodes.pp:
import "computer1"
import "computer2"
#end node.pp----------------------


computer1.pp:
node
        'computer1.domain'
        {
        include module1
        include module2
}
#end computer1.pp----------------------


computer2.pp:
node
        'computer2.domain'
        {
        include module2
        include module3
}
#end computer2.pp----------------------


-- 
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.

Reply via email to