On 26.04.2013 12:19, Jonathan Gazeley wrote:
I use puppet forge to install various modules on my puppetmaster. I'm
thinking about the build process if I build a new puppetmaster. Manually
reinstalling the modules is prone to error if I forget which modules I
used to have.
I looked at this module[1] as a way of making puppet automatically
install its own modules. But then I realised - if I am building a
puppetmaster from scratch then it won't have the ability to use this
module to install itself... chicken and egg.
How have other people handled this?
I've put all puppet modules I'm deploying into a central git repo. This
is my source of truth. It has branches for each environment (currently
not used here). There is a script on the puppetmaster polling the repo
(or reacting to triggers, depending on the client's setup) which updates
all environments from the branches.
Setting up a new puppetmaster in an already running system is easy:
there's a puppetmaster class that clones the required repos and deploys
the scripts and keys.
Bootstrapping a new puppetmaster from scratch requires installing enough
software and repos to run puppet apply on a puppetmaster.pp script.
The public working code can be found on github:
https://github.com/DavidS/dasz-configuration
The puppetmaster vagrant box is bootstrapped each time the box is
rebuilt using the configuration in
https://github.com/DavidS/dasz-configuration/blob/master/manifests/puppetmaster.pp
The production puppetmaster is configured very similarly using this node
definition:
https://github.com/DavidS/dasz-configuration/blob/master/manifests/nodes/puppetmaster.dasz.at.pp
Note the additional "secrets" repo. I've not yet added the pull scripts
to this version.
Regards, David
--
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 puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.