aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Vagrantfile4
-rwxr-xr-xbin/provision33
2 files changed, 35 insertions, 2 deletions
diff --git a/Vagrantfile b/Vagrantfile
index 29e7378..5a15585 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -5,8 +5,8 @@ Vagrant::Config.run do |config|
# 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|
diff --git a/bin/provision b/bin/provision
new file mode 100755
index 0000000..fa76b53
--- /dev/null
+++ b/bin/provision
@@ -0,0 +1,33 @@
+#!/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