Been working with Puppet in a standalone configuration for the last 9 months or so. The basic architecture starts with a git repo that has the whole configuration. All the modules are external to the repo. Managing this has at times been cumbersome and recently I’ve been investigating using librarian-puppet to manage the modules. I’ve create a bare minimum configuration that I can share, it performs the main steps with a pair of scripts, one to initialize things and the other for routine calls to puppet apply.
Everything is at GitHub.
Hopefully it’s useful to others. One thing to note, I’m using the EPEL packaged puppet instead of the latest and my config is very RHEL oriented. So it will work on any derived distros.
Basic syntax checking. What more can I say. As I continue to work on modules, being able to quickly check syntax without having to insert into an working environment is invaluable.
I’ve been teaching myself Puppet. I determined early on that I preferred the standalone approach, where the whole configuration is stored in a centralized repository with the clients periodically checking out the configuration and applying the changes. Since there are some gaps in the information I found on the subject, I put the most basic structure together and made it available in github. Take this as a starting point. It will need modification to suit your needs.
The assumptions for this project are related to the kickstart project that can also be found in github. If you kickstart a new host/vm, you will want to place it under configuration management as quickly as possible, usually a requirement these days. I have included the bootstrap.sh script to act as the first step towards that goal. Once the initial checkout and application of the configuration occur, reboot and you can start using the new host/vm in it’s role.
Edit: Kick or don’t kick. Puppet does not care.