I do that in this way:

On puppet.conf on the puppetmaster:
-----------------------------------
[puppetmasterd]
    reports = store,rrdgraph,tagmail,log
    autosign = true
    environments = alpha,beta,gamma
    manifest = /no/file

[beta]
    modulepath = /etc/puppet/data/beta/
    manifest = /etc/puppet/manifests/site-beta.pp

[alpha]
    modulepath = /etc/puppet/data/alpha/
    manifest = /etc/puppet/manifests/site-alpha.pp

[gamma]
    modulepath = /etc/puppet/data/gamma/
    manifest = /etc/puppet/manifests/site-gamma.pp
-----------------------------------

 /etc/puppet/manifests/site-beta.pp has something like:
import "project_beta" (a module, in  where you define your
infrastructure, placed in /etc/puppet/data/beta/ )

Permissions on /etc/puppet/data/beta/ are limited to the users/groups
that can manage files for the beta environment.


On puppet.conf on the client (for example of the beta environment):
[main]
    vardir = /var/lib/puppet
    logdir = /var/log/puppet
    rundir = /var/run/puppet
    ssldir = $vardir/ssl
    environment = beta

[puppetd]
    classfile = $vardir/classes.txt
    localconfig = $vardir/localconfig
    environments = beta



You can define also testing / production environments for each
department, with something like:

On clients:
[main]
    vardir = /var/lib/puppet
    logdir = /var/log/puppet
    rundir = /var/run/puppet
    ssldir = $vardir/ssl
    environment = betaprod

[puppetd]
    classfile = $vardir/classes.txt
    localconfig = $vardir/localconfig
    environments = betatest,betaprod

(normal puppetruns use beta-prod, with "puppetd -t --
environment=betatest" you run on the test environment of beta).

puppet.conf on the puppet master becomes something like:
[puppetmasterd]
    reports = store,rrdgraph,tagmail,log
    autosign = true
    environments = alphatest,alphaprod,betatest,betaprod ...
    manifest = /no/file


[betatest]
    modulepath = /etc/puppet/data/beta/test/
    manifest = /etc/puppet/manifests/site-beta.pp

[betaprod]
    modulepath = /etc/puppet/data/beta/prod/
    manifest = /etc/puppet/manifests/site-beta.pp


/etc/puppet/data/beta/test/ and /etc/puppet/data/beta/prod/ are both
git clones that pull from something like  /etc/puppet/data/beta/
gitrepo

My2c

Alessandro Franceschi

On 7 Set, 10:24, philipp Hanselmann <philipp.hanselm...@gmail.com>
wrote:
> We are planning to use a puppet server for several internal customers at
> our school (ETHZ - Swiss Fedral Institute of Technology Zürich).
>
> One way could be to choose  a separate environment for each customer ...
>
> Each customer will get a normal user on the puppet server. With this he
> can edit his files inside his own environment path ...
>
> But how can  we ensure that the customers are separated? It should NOT
> be possible for customer X to choose a environment from customer Y.
>
> Is there a way to implement this?
>
> Philipp Hanselmann
--~--~---------~--~----~------------~-------~--~----~
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