Skeleton for Puppet with Continuous Deployment
NOTICE: This is very much a work in progress. Bugs abound.
- Ubuntu/Debian (tested on Ubuntu 14.04)
- Git
- Connection to the Internet
- Clone this repository to
/opt/puppet-cd-skeleton
- Install development tools:
bin/setup_puppet_development.sh
- Provision the system with the role "cd_demo":
bin/provision-standalone.sh cd_demo
. - Browse to the host with a browser of your choice.
WARNING: The installation has no security features enabled. No operations are secured with passwords or anything else.
When committing changes to the git repo:
- The pre-commit hook will perform a
rake validate
. - The post-commit hook will send a signal, via curl, to jenkins at localhost:80 to build the puppet-cd_demo project.
- Jenkins will run
bin/puppet-integration-test.sh cd_demo
, which spawns a docker instance to test the role "cd_demo".
- Profiles module Rspec tests are in ./modules/profiles/spec and
- Role Rspec tests are in ./spec (and don't work reliably)
- Docker/Vagrant setup for Beaker is in ./spec/acceptance/nodesets
Do not use this in production. Every time r10k updates the installed modules is will purge the profiles module. If you want to use something like this create your own profiles module in a new repository and manage it like a module.
- Beaker acceptance tests don't work for the host roles.
- Jenkins project is not created.
- Jenkins may or may not show output from docker, it must do so consintently.
- Some of the modules I use, especally the puppet module, are not well tested. Yet.