diff --git a/hooks/install b/hooks/install
deleted file mode 120000
index 3ba0bdea..00000000
--- a/hooks/install
+++ /dev/null
@@ -1 +0,0 @@
-nova_compute_hooks.py
\ No newline at end of file
diff --git a/hooks/install b/hooks/install
new file mode 100755
index 00000000..83a9d3ce
--- /dev/null
+++ b/hooks/install
@@ -0,0 +1,20 @@
+#!/bin/bash
+# Wrapper to deal with newer Ubuntu versions that don't have py2 installed
+# by default.
+
+declare -a DEPS=('apt' 'netaddr' 'netifaces' 'pip' 'yaml')
+
+check_and_install() {
+    pkg="${1}-${2}"
+    if ! dpkg -s ${pkg} 2>&1 > /dev/null; then
+        apt-get -y install ${pkg}
+    fi
+}
+
+PYTHON="python"
+
+for dep in ${DEPS[@]}; do
+    check_and_install ${PYTHON} ${dep}
+done
+
+exec ./hooks/install.real
diff --git a/hooks/install.real b/hooks/install.real
new file mode 120000
index 00000000..3ba0bdea
--- /dev/null
+++ b/hooks/install.real
@@ -0,0 +1 @@
+nova_compute_hooks.py
\ No newline at end of file
diff --git a/hooks/nova_compute_hooks.py b/hooks/nova_compute_hooks.py
index 9454c2cf..df58bb10 100755
--- a/hooks/nova_compute_hooks.py
+++ b/hooks/nova_compute_hooks.py
@@ -85,7 +85,7 @@ hooks = Hooks()
 CONFIGS = register_configs()
 
 
-@hooks.hook()
+@hooks.hook('install.real')
 def install():
     execd_preinstall()
     configure_installation_source(config('openstack-origin'))