diff options
-rw-r--r-- | Vagrantfile | 4 | ||||
-rwxr-xr-x | bin/provision | 33 |
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 |