puppet-controlrepo
This project serves as a complete starter kit for your Puppet controlled infrastructure. It is feature filled with everything you ever wanted but never had; such as Hiera, R10K, Roles and Profiles framework, and Vagrant.
Project Goals
- Whitelabel so that anyone can use this project from a class demo all the way to a full blown Fortune 500 datacenter
- Compatible with as many operating systems as possible
- Stay current with all the best practices
Installation and Usage
- Clone the repo
- Install some vagrant plugins
1.
vagrant plugin install vagrant-cachier
1.vagrant plugin install vagrant-r10k
vagrant up
and watch your new virtual machine get fully provisionedvagrant ssh
and have a look around- Now try making a change to some YAML data. Edit
common.yaml
and add/remove a DNS server, just for fun vagrant provision
, now watch the DNS client configuration recieve your change.
app_role
or app_tier
)
Setting facter facts for Vagrant to use (i.e. Use environment variables to set facter facts that get passed to Vagrant.
$ APP_ROLE=webserver vagrant provision
or...
$ APP_ROLE=webserver APP_TIER=production vagrant provision
Compatibility
Tested with Puppet v3.8 (open source) on CentOS 6.7 and Ubuntu Server 14.04 LTS.
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
History
Nov 2015: Initial commit
Credits
Sean S. King, author
Thanks to Rob Nelson. His project puppetinabox was the inspiration for this one.
Thanks to Craig Dunn and Gary Larizza for their broad research on ways to make Puppet not suck.