]> gitweb.fluxo.info Git - puppet-bootstrap.git/commitdiff
Adding a custom provision script
authorSilvio Rhatto <rhatto@riseup.net>
Mon, 3 Mar 2014 17:52:24 +0000 (14:52 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Mon, 3 Mar 2014 17:52:24 +0000 (14:52 -0300)
Vagrantfile
bin/provision [new file with mode: 0755]

index 29e737840f2d2c4e4c3162675531eaefe4e6937a..5a155853f869f502f53ec87e639b719345d305d9 100644 (file)
@@ -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 (executable)
index 0000000..fa76b53
--- /dev/null
@@ -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