Hi,

We're trying to implement the following structure:

class my_pool {
  include linux, httpd... base modules

  include project_A
  include project_B
}

One pool can have many projects. One projects can be on many pools.

A project is basically made of:
- directories + NFS mounts
- users and crontabs
- apache virtualhosts

Problem is that users and mounts can be used by differents projects
(yet they need not be setup on all nodes/hosts). So I can't have this:

class project_A
{
   user { "bob" :
    ...
   }

   # also needed in project_B
   file { "/mnt/used_in_several_projects":
 ....
   }

   mount { "/mnt/used_in_several_projects" :
 ....
   }
}

I see two options:
- have virtual mounts/users/files in mounts::virtual and
users::virtual classes and then realize() them where needed
- create various classes which include real (non-virtual) ressources
and then include the various classes where needed.

I'm not sure what way I should go. Having a mounts::virtual class with
all (potentially) common mounts means I don't have to split mounts
among various classes which may end up quite messy over time. I just
throw mounts that intersect two or more projects in the virtual class
and realize() where needed.

On the other hand, having all the realize() function calls in each
project class somewhat defeats the purpose of
"reusability"/"factorization"...

Anyway, what would you suggest on the long term ?

Thanks !
--~--~---------~--~----~------------~-------~--~----~
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