back on my own account again, updating: hi! thanks for the advice i think i don't understand the nature of 'include'. in my mind include is something that is invisible to the actual engine that does things..it's a shorthand
that replaces 'include X' with the contents of X and then the software goes to work on the final result and humans don't have to look at hugely long files. so when i see a file that says class A { blah } include A it seems like it's redundant...so i'm thinking in the puppet world..does include have some stronger meaning like "and execute the code"? here is the specifics of my multilayer include world: ------------------------------------------------------ my attempt to trace the lineage of the resource i'm bumping into in my manifest/node file: node "chquoteq02.tradearca.com" { ... include base::setup ... i'd like to TURN ON SERVICE netfs for this node } ------------------------------------------------------ in /etc/puppet/modules-base/trunk/base/manifests/init.pp: class base::setup { ... include services::setup ... } ------------------------------------------------------ in /etc/puppet/modules-base/trunk/services/manifests/init.pp: class services::setup { ... include services::base ... } class services::base { ... service { netfs: ... TURNS OFF SERVICE } ... } so give this, i tried this (but it didn't work) in my manifest/node file: class myoverrideclass inherits services::base { service { netfs: enable => true, ensure => running, hasstatus => true, } } include base::setup include myoverrideclass i ran: puppetd -ov --no-daemonize on the client server and got: err: Could not retrieve catalog: Puppet::Parser::AST::Resource failed with error ArgumentError: Duplicate definition: Service[netfs] is already defined in file /etc/puppet/modules-base/trunk/services/ manifests/init.pp at line 385; cannot redefine at /etc/puppet/ manifests/nodes/chquoteq02.tradearca.com.node:491 on node chquoteq02.tradearca.com i even tried moving the 'include base::setup' to be above the 'myoverrideclass' definition but still the same problem... On Nov 25, 2:17 pm, Peter Meier <peter.me...@immerda.ch> wrote: > Hi > > > i've been fiddling around with the inherits form...but..i can't seem > > to get any headway out of it. > > What is your problem with inheritance? Maybe we can give you a way out > and following example shows you that it is the way to go: > > $ cat foo.pp > class a { > file{'/tmp/a': ensure => file} > file{'/tmp/b': ensure => file} > > } > > class b inherits a { > File['/tmp/b']{ensure => absent } > > } > > include a > include b > $ puppet foo.pp > notice: //a/File[/tmp/a]/ensure: created > $ > > you can include the inherited class anywhere you'd like to. So for > example simply write disable classes for the services you don't want > to manage on certain nodes and then include these in your node. > > cheers pete -- 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.