diff --git a/spec/acceptance/nodesets/nodepool-xenial.yml b/spec/acceptance/nodesets/nodepool-xenial.yml
new file mode 100644
index 0000000..99dd318
--- /dev/null
+++ b/spec/acceptance/nodesets/nodepool-xenial.yml
@@ -0,0 +1,10 @@
+HOSTS:
+  ubuntu-16.04-amd64:
+    roles:
+      - master
+    platform: ubuntu-16.04-amd64
+    hypervisor: none
+    ip: 127.0.0.1
+CONFIG:
+  type: foss
+  set_env: false
diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb
index 7a5efa1..002ab34 100644
--- a/spec/spec_helper_acceptance.rb
+++ b/spec/spec_helper_acceptance.rb
@@ -2,7 +2,14 @@ require 'beaker-rspec'
 
 hosts.each do |host|
 
-  install_puppet
+  # puppet 3 isn't available from apt.puppetlabs.com so install it from the Xenial repos
+  on host, "which apt-get && apt-get install puppet -y", { :acceptable_exit_codes => [0,1] }
+  # otherwise use the beaker helpers to install the yum.puppetlabs.com repo and puppet
+  r = on host, "which yum",  { :acceptable_exit_codes => [0,1] }
+  if r.exit_code == 0
+    install_puppet
+  end
+  add_platform_foss_defaults(host, 'unix')
 
   on host, "mkdir -p #{host['distmoduledir']}"
 end