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.