Yes, big difference.

The 'import' function will literally add the contents of a manifest file into where your import statement is, it's like a 'include "woof.h"' in C/C++ or "source /etc/sysconfig/woof" in Bash. It should really never be used anywhere outside of site.pp to add classes and functions but rather with Puppet's class autoloading functionality.

When you "import" something Puppet will search your modules for a class of the given name, see here for examples of how the class name or custom define (they autoload the same way): http://docs.puppetlabs.com/guides/modules.html#module-autoloading

Some more differences: if you were to be silly and import a manifest file with a class definition in it, say "import modules/woof/manifests/init.pp", that doesn't declare the class on a node (it doesn't "turn it on"). You can "include" a class multiple times, this is nice for handling loose overlapping dependencies between modules. If you "import" a file multiple times it will be added to the catalog compilation multiple times and most likely give you a lot of errors about things having multiple declarations.

So:

import "path/to/a/file.pp"
include some_class::that_i_defined::correctly

HTH,

-Luke

On 19/11/11 12:36, Hugo Deprez wrote:
Thank you Ramin, I used
import "nodes/*.pp"  this is exactly what I wanted.

I am quite confuse about the difference between "import" and
"include" (used for a module).

is there a real difference ?

Regards,

Hugo



On 17 November 2011 21:04, Ramin K<ramin.khat...@gmail.com>  wrote:
Tech documentation is littered with examples that illustrate exactly
one thing and call it day. 99% of the power of any system comes from
learning to combine multiple functions. I chose that example because
it illustrates regex, using regex in a node as well as case
statements, adding classes based on case statements, setting a default
in a case statement, and should have the OP considering that Puppet
can do more then 1:1 mapping. Getting past the 1:1 mapping idea seems
to take most traditional sysadmins or non CS types longer. Simply,
demonstrating possibilities was more important than least keystrokes.
Also my example avoids first match problems. Yours does as well
assuming it was clear that the first statement *had* to be first. That
is probably the number #2 mistake of documentation, illustrating a
concept without exploring the assumptions of the example.

Ramin

On Nov 17, 10:47 am, Jo Rhett<jrh...@netconsonance.com>  wrote:
On Nov 16, 2011, at 11:08 AM, Ramin K wrote:


You can also use regex in your node files to further simplify though
if you're doing a lot of logic here you should probably start thinking
about an ENC.
fe.pp
node /^fe\d+(.*)/ inherits basenode {
  case $::fqdn {
    /(.*)stage|demo(.*)/: {
      include hostgroup::frontend::stage
    }
    default: {
      include hostgroup::frontend::prod
    }
  }
}
Ramin, curious as to how this differs from the shorter …?

node /^fe\d+(.*)(stage|demo)(.*)/ inherits basenode {
      include hostgroup::frontend::stage}

node /^fe\d+(.*)/ inherits basenode {
      include hostgroup::frontend::prod

}

I love regexs too, but that seems to be excessive syntax.
(and FYI, you forgot parens around the | …)

--
Jo Rhett
Net Consonance : consonant endings by net philanthropy, open source and other 
randomness
--
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.




--
Luke Bigum
Information Systems
+44 (0) 20 3192 2520
luke.bi...@lmax.com | http://www.lmax.com
LMAX, Yellow Building, 1A Nicholas Road, London W11 4AN


The information in this e-mail and any attachment is confidential and is 
intended only for the named recipient(s). The e-mail may not be disclosed or 
used by any person other than the addressee, nor may it be copied in any way. 
If you are not a named recipient please notify the sender immediately and 
delete any copies of this message. Any unauthorized copying, disclosure or 
distribution of the material in this e-mail is strictly forbidden. Any view or 
opinions presented are solely those of the author and do not necessarily 
represent those of the company.

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

Reply via email to