Provides a template Vagrant project that will boot up a good working Vagrant box, with good defaults that you can also customize. The goal here is minimal turst: take a known good base box and provision it into usefulness.
This Vagrant file and setup assumes a number of things:
- You want a 64bit VM
- You want to use Puppet (4.3)
- You want to keep all your Puppet stuff in one folder
- Git
- Mercurial
- GNU Screen
- Postgresql
- SQLite
- ruby-build with chruby
Vagrant's provisioning tools pulls in most various Puppet modules used by the manifest. Here's a list:
- NodeJS Puppet Module
- Puppet standard library
- Puppet APT library
- Puppet Module for RVM
- Puppet module for RubyBuild
You'll need to run make modules_folder
to download the rest (modules that aren't published to Puppet Forge or the published versions are out of date)
- Clone this repo
- Edit port forwarding, shared folders in Vagrantfile
- Change
puppet.facter
lines in Vagrantfile as appropriate - Edit
manifests/lucid32.pp
to include any project specific Puppet declarations you need make modules_folder
- vagrant up
- vagrant package
- vagrant box add NAME package.box
- Write down port numbers on host machine that map
- Tell user to change password
- All project work should happen in /projects (TODO: symlink ~/projects to this?)
- Change your mysql root password
- Use Puppetfile to manage dependancies, have VM shell provisioner fire off puppet-librarian to d/l them all?
- Move to Ubuntu 12 LTS, not Ubuntu 10 Lucid LTS
- simple postgress doesn't work under Ubuntu 12. Fix or replace.
- Fix VagrantFile to use new v2 DSL