On Wed, Feb 27, 2013 at 8:06 AM, Roman Mäder <[email protected]> wrote:
> I manage a web/mail/dns server for my own small business and so far
> maintained the test and production servers by hand, keeping config files
> under cvs and using scp to copy them to the servers. Looking for a better
> way to do this (prompted by the more and more tedious work to do when
> upgrading the OS on a server and the planned hardware replacement) I
> stumbled upon puppet and so far this seems like the best solution. What won
> me over was the excellent tutorials.
> I am now trying to figure out the best way to organize my work, and I need
> help from the experts, as I did not find any info on these questions of
> workflow setup.
> I don't think the 'tutorial' way of editing files directly under
> /etc/puppet/{manifests,modules} is recommended for real work; I want to use
> another directory, which I can also mount on my workstation, for editing the
> files.
> There is the 'confdir' setting, but it affects more than what I consider the
> 'data' part of the layout (manifests, modules, nodes, ....) so I am
> considering this setup in /etc/puppet/puppet.conf:
>     $datadir = "/some/fs/puppet"
>     manifestdir = "$datadir/manifests"
>     modulepath =
> "$datadir/modules:$confdir/modules:/usr/share/puppet/modules"
> except that it is not possible to define variables in config files, but this
> works fine:
>     manifestdir = "/some/fs/puppet/manifests"
>     modulepath =
> "/some/fs/puppet/modules:$confdir/modules:/usr/share/puppet/modules"
>
> so everything puppet-internal is still in /etc/puppet, and I can hack away
> (under CVS control) at the files under /some/fs/puppet.
>
> Does this make sense?
>
> Thanks for your consideration,
> Roman


A more typical workflow would be to keep all your production files
within /etc/puppet on the puppet master, with those checked out from a
production branch in your CVS server.  On your development machine,
you use a separate checkout from a separate branch, and when you're
done you push into the production branch, then update to that release
on your production server.  This is a more typical approach and I
don't think mounting the same files on different servers makes a lot
of sense.

I'm not really a fan of keeping files in /etc/puppet, but that seems
to be the default that most people use.  However, I would look into
environments and modules, and make sure to put everything inside
there, which forces you to keep things a lot more modular and also
eases development.  A typical setup for this would use the path:
    /etc/puppet/environments/dev/{manifests,modules}
and you would keep all files within "dev" under revision control.


❧ Brian Mathis

-- 
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to