This is an appliance stack for simplifying the building of a LAMP stack.
Currently this will install everything needed and leave you with a working LAMP stack
ready for application deployment.
The appliance will take around 10 or so minutes to build depending on the speed
of your VM and the internet connection.
In here you will find:
- a collection of puppet(2.7) manifests and modules
- a capistrano recipe for orchestration
The following pre-requisites should be met to be able to use this appliance.
- a clean/fresh minimal Ubuntu Lucid VM
- root access to the VM (should be disabled once appliance is built)
- ssh keys deployed and ssh-agent forwarding turned on.
- capistrano installed locally
- gem install capistrano (if needed)
Workflows / Usage
There is two different work flows included with this appliance.
One makes use of git + puppet and the other rsync + puppet.
rsync + puppet is great for testing changes to the puppet manifests
before commiting them to git and deploying to production.
Example Production Workflow
git clone https://bitbucket.org/aussielunix/lamp-appliance.git ssh-copy-id -i ~/.ssh/lunix_dsa.pub email@example.com cd lamp-appliance
cap puppet:prep HOST="cloud-server-01.example.com.au" #git clone + install puppet etc cap puppet:go HOST="cloud-server-01.example.com.au"
Example Development Workflow
git clone https://bitbucket.org/aussielunix/lamp-appliance.git ssh-copy-id -i ~/.ssh/lunix_dsa.pub firstname.lastname@example.org cd lamp-appliance
Build + hack + test + build
cap puppet:prepd HOST="dev-vm.local" (HOST is optional and overrides the default HOST) cap puppet:go HOST="dev-vm.local" OPTIONS="--noop" <hack hack hack> cap puppet:upd HOST="dev-vm.local" #rsyncs changes to VM cap puppet:go HOST="dev-vm.local" git commit
- document document document
- create a wiki page with more info
- write fog script for creating a cloud VM
- test with different VM/cloud providers
- add smoke tests to modules
- cucumber tests to test appliance has built correctly.