diff --git a/packer/provision/basebuild.sh b/packer/provision/basebuild.sh
new file mode 100644
index 0000000..68ba71c
--- /dev/null
+++ b/packer/provision/basebuild.sh
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+# vim: ts=4 sw=4 sts=4 et tw=72 :
+
+rh_systems() {
+    # Install python dependencies
+    yum install -y python-{devel,virtualenv,setuptools,pip}
+
+    # Build dependencies for Python packages
+    yum install -y openssl-devel mysql-devel gcc
+
+    # Autorelease support packages
+    yum install -y xmlstarlet
+
+    # Additional libraries for Python ncclient
+    yum install -y libxml2 libxslt libxslt-devel libffi libffi-devel
+
+    # Packer builds happen from the centos flavor images
+    PACKERDIR=$(mktemp -d)
+    # disable double quote checking
+    # shellcheck disable=SC2086
+    cd $PACKERDIR
+    wget https://releases.hashicorp.com/packer/0.12.2/packer_0.12.2_linux_amd64.zip
+    unzip packer_0.12.2_linux_amd64.zip -d /usr/local/bin/
+    # rename packer to avoid conflicts with cracklib
+    mv /usr/local/bin/packer /usr/local/bin/packer.io
+
+    # cleanup from the installation
+    # disable double quote checking
+    # shellcheck disable=SC2086
+    rm -rf $PACKERDIR
+    # cleanup from previous install process
+    if [ -d /tmp/packer ]
+    then
+        rm -rf /tmp/packer
+    fi
+}
+
+ubuntu_systems() {
+    # Install python dependencies
+    apt-get install -y python-{dev,virtualenv,setuptools,pip}
+
+    # Build dependencies for Python packages
+    apt-get install -y libssl-dev libmysqlclient-dev gcc
+
+    # Additional libraries for Python ncclient
+    apt-get install -y wget unzip python-ncclient
+}
+
+all_systems() {
+    echo 'No common distribution configuration to perform'
+}
+
+echo "---> Detecting OS"
+ORIGIN=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
+
+case "${ORIGIN}" in
+    fedora|centos|redhat)
+        echo "---> RH type system detected"
+        rh_systems
+    ;;
+    ubuntu)
+        echo "---> Ubuntu system detected"
+        ubuntu_systems
+    ;;
+    *)
+        echo "---> Unknown operating system"
+    ;;
+esac
+
+# execute steps for all systems
+all_systems
diff --git a/packer/provision/basebuild/.dummy b/packer/provision/basebuild/.dummy
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packer/provision/basebuild/.dummy
diff --git a/packer/provision/baseline.sh b/packer/provision/baseline.sh
new file mode 100644
index 0000000..4870cbf
--- /dev/null
+++ b/packer/provision/baseline.sh
@@ -0,0 +1,181 @@
+#!/bin/bash
+
+# vim: ts=4 sw=4 sts=4 et tw=72 :
+
+rh_systems() {
+    # Handle the occurance where SELINUX is actually disabled
+    SELINUX=$(grep -E '^SELINUX=(disabled|permissive|enforcing)$' /etc/selinux/config)
+    MODE=$(echo "$SELINUX" | cut -f 2 -d '=')
+    case "$MODE" in
+        permissive)
+            echo "************************************"
+            echo "** SYSTEM ENTERING ENFORCING MODE **"
+            echo "************************************"
+            # make sure that the filesystem is properly labelled.
+            # it could be not fully labeled correctly if it was just switched
+            # from disabled, the autorelabel misses some things
+            # skip relabelling on /dev as it will generally throw errors
+            restorecon -R -e /dev /
+
+            # enable enforcing mode from the very start
+            setenforce enforcing
+
+            # configure system for enforcing mode on next boot
+            sed -i 's/SELINUX=permissive/SELINUX=enforcing/' /etc/selinux/config
+        ;;
+        disabled)
+            sed -i 's/SELINUX=disabled/SELINUX=permissive/' /etc/selinux/config
+            touch /.autorelabel
+
+            echo "*******************************************"
+            echo "** SYSTEM REQUIRES A RESTART FOR SELINUX **"
+            echo "*******************************************"
+        ;;
+        enforcing)
+            echo "*********************************"
+            echo "** SYSTEM IS IN ENFORCING MODE **"
+            echo "*********************************"
+        ;;
+    esac
+
+    echo "---> Updating operating system"
+    yum clean all -q
+    yum install -y -q deltarpm
+    yum update -y -q
+
+    # add in components we need or want on systems
+    echo "---> Installing base packages"
+    yum install -y -q @base https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
+    # separate group installs from package installs since a non-existing
+    # group with dnf based systems (F21+) will fail the install if such
+    # a group does not exist
+    yum install -y -q unzip xz puppet git git-review perl-XML-XPath wget make
+
+    # All of our systems require Java (because of Jenkins)
+    # Install all versions of the OpenJDK devel but force 1.7.0 to be the
+    # default
+
+    echo "---> Configuring OpenJDK"
+    yum install -y -q 'java-*-openjdk-devel'
+
+    FACTER_OS=$(/usr/bin/facter operatingsystem)
+    FACTER_OSVER=$(/usr/bin/facter operatingsystemrelease)
+    case "$FACTER_OS" in
+        Fedora)
+            if [ "$FACTER_OSVER" -ge "21" ]
+            then
+                echo "---> not modifying java alternatives as OpenJDK 1.7.0 does not exist"
+            else
+                alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
+                alternatives --set java_sdk_openjdk /usr/lib/jvm/java-1.7.0-openjdk.x86_64
+            fi
+        ;;
+        *)
+            alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
+            alternatives --set java_sdk_openjdk /usr/lib/jvm/java-1.7.0-openjdk.x86_64
+        ;;
+    esac
+
+    # Needed to parse OpenStack commands used by infra stack commands
+    # to initialize Heat template based systems.
+    yum install -y jq
+}
+
+ubuntu_systems() {
+    # Ignore SELinux since slamming that onto Ubuntu leads to
+    # frustration
+
+    export DEBIAN_FRONTEND=noninteractive
+    cat <<EOF >> /etc/apt/apt.conf
+APT {
+  Get {
+    Assume-Yes "true";
+    allow-change-held-packages "true";
+    allow-downgrades "true";
+    allow-remove-essential "true";
+  };
+};
+
+Dpkg::Options {
+  "--force-confdef";
+  "--force-confold";
+};
+
+EOF
+
+    echo "---> Updating operating system"
+    apt-get update -qq > /dev/null
+    apt-get upgrade -qq > /dev/null
+
+    # add in stuff we know we need
+    echo "---> Installing base packages"
+    apt-get install -qq unzip xz-utils puppet git git-review libxml-xpath-perl make wget > /dev/null
+
+    # install Java 7
+    echo "---> Configuring OpenJDK"
+    apt-get install -qq openjdk-7-jdk > /dev/null
+
+    # make jdk8 available
+    add-apt-repository -y ppa:openjdk-r/ppa > /dev/null
+    apt-get update -qq > /dev/null
+    # We need to force openjdk-8-jdk to install
+    apt-get install -qq openjdk-8-jdk > /dev/null
+
+    # make sure that we still default to openjdk 7
+    update-alternatives --set java /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
+    update-alternatives --set javac /usr/lib/jvm/java-7-openjdk-amd64/bin/javac
+
+    # Needed to parse OpenStack commands used by infra stack commands
+    # to initialize Heat template based systems.
+    apt-get install -qq jq > /dev/null
+
+    # disable unattended upgrades & daily updates
+    echo '---> Disabling automatic daily upgrades'
+    sed -ine 's/"1"/"0"/g' /etc/apt/apt.conf.d/10periodic
+    echo 'APT::Periodic::Unattended-Upgrade "0";' >> /etc/apt/apt.conf.d/10periodic
+}
+
+all_systems() {
+    # Allow jenkins access to update-alternatives command to switch java version
+    cat <<EOF >/etc/sudoers.d/89-jenkins-user-defaults
+Defaults:jenkins !requiretty
+jenkins ALL = NOPASSWD: /usr/bin/update-alternatives
+EOF
+
+    # Do any Distro specific installations here
+    echo "Checking distribution"
+    FACTER_OS=$(/usr/bin/facter operatingsystem)
+    case "$FACTER_OS" in
+        *)
+            echo "---> $FACTER_OS found"
+            echo "No extra steps for $FACTER_OS"
+        ;;
+    esac
+}
+
+echo "---> Attempting to detect OS"
+# upstream cloud images use the distro name as the initial user
+ORIGIN=$(if [ -e /etc/redhat-release ]
+    then
+        echo redhat
+    else
+        echo ubuntu
+    fi)
+#ORIGIN=$(logname)
+
+case "${ORIGIN}" in
+    fedora|centos|redhat)
+        echo "---> RH type system detected"
+        rh_systems
+    ;;
+    ubuntu)
+        echo "---> Ubuntu system detected"
+        ubuntu_systems
+    ;;
+    *)
+        echo "---> Unknown operating system"
+    ;;
+esac
+
+# execute steps for all systems
+all_systems
diff --git a/packer/provision/null_data.sh b/packer/provision/null_data.sh
new file mode 100644
index 0000000..3fa6a3c
--- /dev/null
+++ b/packer/provision/null_data.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+# vi: ts=4 sw=4 sts=4 et :
+
+# Nothing to do for Ubuntu specific provisioning
diff --git a/packer/provision/redis-server.sh b/packer/provision/redis-server.sh
new file mode 100644
index 0000000..9a29b95
--- /dev/null
+++ b/packer/provision/redis-server.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+# vim: ts=4 sw=4 sts=4 et tw=72 :
+
+rh_systems() {
+    echo "---> Installing IUS repo and Redis"
+    # make sure that IUS is installed
+    yum install -y https://centos7.iuscommunity.org/ius-release.rpm
+    # now install redis 3.2.x
+    yum install -y redis32u
+    systemctl enable redis
+}
+
+ubuntu_systems() {
+    echo "---> Installing Redis"
+    # Install redis-server
+    apt install -y redis-server
+}
+
+all_systems() {
+    echo 'No common distribution configuration to perform'
+}
+
+echo "---> Detecting OS"
+ORIGIN=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
+
+case "${ORIGIN}" in
+    fedora|centos|redhat)
+        echo "---> RH type system detected"
+        rh_systems
+    ;;
+    ubuntu)
+        echo "---> Ubuntu system detected"
+        ubuntu_systems
+    ;;
+    *)
+        echo "---> Unknown operating system"
+    ;;
+esac
+
+# execute steps for all systems
+all_systems
diff --git a/packer/provision/rh-user_data.sh b/packer/provision/rh-user_data.sh
new file mode 100644
index 0000000..6bddb24
--- /dev/null
+++ b/packer/provision/rh-user_data.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+# vi: ts=4 sw=4 sts=4 et :
+
+/bin/sed -i 's/ requiretty/ !requiretty/' /etc/sudoers;
diff --git a/packer/provision/robot.sh b/packer/provision/robot.sh
new file mode 100644
index 0000000..bac724a
--- /dev/null
+++ b/packer/provision/robot.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+# vim: ts=4 sw=4 sts=4 et tw=72 :
+
+rh_systems() {
+    # Assumes that python is already installed by basebuild
+
+    # Install dependencies for robotframework and robotframework-sshlibrary
+    yum install -y -q yum-utils unzip sshuttle nc libffi-devel openssl-devel
+
+    # Install docker
+    yum install -y docker supervisor bridge-utils
+    systemctl enable docker
+
+    # configure docker networking so that it does not conflict with LF
+    # internal networks
+    cat <<EOL > /etc/sysconfig/docker-network
+# /etc/sysconfig/docker-network
+DOCKER_NETWORK_OPTIONS='--bip=10.250.0.254/24'
+EOL
+    # configure docker daemon to listen on port 5555 enabling remote
+    # managment
+    sed -i -e "s#='--selinux-enabled'#='--selinux-enabled -H unix:///var/run/docker.sock -H tcp://0.0.0.0:5555'#g" /etc/sysconfig/docker
+
+    # docker group doesn't get created by default for some reason
+    groupadd docker
+
+    # Actual installation of robot is done from an integration JJB script
+}
+
+ubuntu_systems() {
+    # Assumes that python is already installed by basebuild
+
+    # Install dependencies for robotframework and robotframework-sshlibrary
+    apt install -y unzip sshuttle netcat libffi-dev libssl-dev
+
+    # Install docker
+    apt install -y docker.io
+
+    # Actual installation of robot is done from an integration JJB script
+}
+
+all_systems() {
+    echo 'No common distribution configuration to perform'
+}
+
+echo "---> Detecting OS"
+ORIGIN=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
+
+case "${ORIGIN}" in
+    fedora|centos|redhat)
+        echo "---> RH type system detected"
+        rh_systems
+    ;;
+    ubuntu)
+        echo "---> Ubuntu system detected"
+        ubuntu_systems
+    ;;
+    *)
+        echo "---> Unknown operating system"
+    ;;
+esac
+
+# execute steps for all systems
+all_systems
diff --git a/packer/provision/system_reseal.sh b/packer/provision/system_reseal.sh
new file mode 100644
index 0000000..f8bc7dc
--- /dev/null
+++ b/packer/provision/system_reseal.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+# vim: sw=2 ts=2 sts=2 et :
+
+rm -rf /etc/Pegasus/*.cnf /etc/Pegasus/*.crt /etc/Pegasus/*.csr \
+  /etc/Pegasus/*.pem /etc/Pegasus/*.srl /root/anaconda-ks.cfg \
+  /root/anaconda-post.log /root/initial-setup-ks.cfg /root/install.log \
+  /root/install.log.syslog /var/cache/fontconfig/* /var/cache/gdm/* \
+  /var/cache/man/* /var/lib/AccountService/users/* /var/lib/fprint/* \
+  /var/lib/logrotate.status /var/log/*.log* /var/log/BackupPC/LOG \
+  /var/log/ConsoleKit/* /var/log/anaconda.syslog /var/log/anaconda/* \
+  /var/log/apache2/*_log /var/log/apache2/*_log-* /var/log/apt/* \
+  /var/log/aptitude* /var/log/audit/* /var/log/btmp* /var/log/ceph/*.log \
+  /var/log/chrony/*.log /var/log/cron* /var/log/cups/*_log /var/log/debug* \
+  /var/log/dmesg* /var/log/exim4/* /var/log/faillog* /var/log/gdm/* \
+  /var/log/glusterfs/*glusterd.vol.log /var/log/glusterfs/glusterfs.log \
+  /var/log/httpd/*log /var/log/installer/* /var/log/jetty/jetty-console.log \
+  /var/log/journal/* /var/log/lastlog* /var/log/libvirt/libvirtd.log \
+  /var/log/libvirt/lxc/*.log /var/log/libvirt/qemu/*.log \
+  /var/log/libvirt/uml/*.log /var/log/lightdm/* /var/log/mail/* \
+  /var/log/maillog* /var/log/messages* /var/log/ntp /var/log/ntpstats/* \
+  /var/log/ppp/connect-errors /var/log/rhsm/* /var/log/sa/* /var/log/secure* \
+  /var/log/setroubleshoot/*.log /var/log/spooler* /var/log/squid/*.log \
+  /var/log/syslog* /var/log/tallylog* /var/log/tuned/tuned.log /var/log/wtmp* \
+  /var/named/data/named.run
+
+rm -rf ~/.viminfo /etc/ssh/ssh*key* /root/.ssh/*
+
+# kill any cloud-init related bits
+rm -rf /var/lib/cloud/*
+
+# clean-up any manual packer uploads
+rm -rf /tmp/packer
+
+# Force a system sync and sleep to get around any SSD issues
+echo "Forcing sync and sleep for 10sec"
+sync
+sleep 10
