# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "wheezy"
- # Shell provisioner to keep the system updated.
- config.vm.provision :shell, :inline => "sudo apt-get update && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y && sudo apt-get clean"
+ # Shell provisioner to setup basic environment.
+ config.vm.provision :shell, :inline => "/vagrant/puppet/bin/provision"
# Enable provisioning with Puppet stand alone.
config.vm.provision :puppet do |puppet|
--- /dev/null
+#!/bin/bash
+#
+# Simple shell provisioner for Vagrant instances.
+#
+
+# Install a package, thanks to the Hydra Suite.
+function provision_package {
+ if [ -z "$1" ]; then
+ return
+ fi
+
+ dpkg -s $1 &> /dev/null
+
+ if [ "$?" == "1" ]; then
+ echo "Installing package $1..."
+ DEBIAN_FRONTEND=noninteractive apt-get install $1 -y
+ fi
+}
+
+# Ensure the system is updated.
+sudo apt-get update && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y && sudo apt-get clean
+
+# Ensure basic packages are installed.
+for package in sqlite3 libsqlite3-ruby ruby-hiera-puppet libactiverecord-ruby ruby-sqlite3 usbutils; do
+ provision_package $package
+done
+
+# Make sure we have an initial hiera configuration.
+if [ ! -e "/etc/puppet/hiera.yaml" ]; then
+ sudo cp /vagrant/puppet/hiera/hiera.yaml /etc/puppet/hiera.yaml
+ sudo chown root. /etc/puppet/hiera.yaml
+ sudo chmod 644 /etc/puppet/hiera.yaml
+fi