Hello
I have a fairly large repository (~100 modules, ~50 classes, ~200 nodes).
It is currently organized like this:
modules/
apache2/
manifests/
files/
templates/
iptables/
manifests/
files/
templates/
postfix/
manifests/
files/
templates/
...
manifests/
classes/
webserver.pp
webserver/
apache2.pp
iptables.pp
mta/
postfix.pp
iptables.pp
...
nodes/
webserver.pp
webserver/
web1.pp
web2.pp
...
mta.pp
mta/
mta1.pp
mta2.pp
...
Subclasses in the modules directory are found via the autoloader, and as
long as I follow the file naming conventions, that works fine. For classes
and nodes, I have to use import. For example, in classes/webserver.pp I
have "import webserver/*.pp" so that I can access classes
webserver::apache2, webserver::iptables and so on. The same is done for
nodes. I usually have a "generic node" where I set variables that are
common for that class of nodes, and then the nodes themselves which inherit
the generic node and set their own variables. To make that work, I use
import in the same way as described above.
I understand that with the deprecation of "include", this will not work
anymore. I can work around this for my classes by adding a new directory to
the modulepath and then converting the directory structure to the
manifests/files/templates structure with an init.pp file. However, what can
I do about the nodes? The new feature of setting the manifest to a
directory does not support subdirectories. Will I be forced to have all my
nodes in the same directory and then rely on file names for organization?
This is far from optimal in my opinion. What other alternatives do I have?
If at all possible, I'd like to avoid using ENCs and keep using puppet
files for node definitions.
Thanks in advance,
Andre
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/7eabce0e-edf6-488a-8182-41ba41e09f0e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.