diff --git a/manifests/guest.pp b/manifests/guest.pp
index ef54d7ce05cac56af7b9990e7f1e9681167b6c47..1321f858a8c87f7e1cfa70d637a034be1e5dd94f 100644
--- a/manifests/guest.pp
+++ b/manifests/guest.pp
@@ -215,6 +215,7 @@ define vm::guest($ensure='installed', $autoboot=true, $virtmethod='xenpv',
 	    include vm::network_bridging
 	    include "vm::osinst::${nodash_os}::${arch}"
 	    include vm::guests::blacklist_hw_drivers
+            include puppet
 
 	    file {
 		"${vm::osparams::xen_kickstart_dir}/${name}.ks":
diff --git a/templates/kickstart/xenguest.centos-6.ks.erb b/templates/kickstart/xenguest.centos-6.ks.erb
index 4257b4946bc7d66dd90ffd1e7957b8732da91bb6..d7e4d8e5de2e0368162a3c21de829f6b4b2cc3ef 100644
--- a/templates/kickstart/xenguest.centos-6.ks.erb
+++ b/templates/kickstart/xenguest.centos-6.ks.erb
@@ -39,6 +39,10 @@ reboot
 	ipaddr = Socket.getaddrinfo(@vm_fqdn, nil,
 				    family=Socket::AF_INET)[0][3]
 	case IPAddr.new(ipaddr)
+	when IPAddr.new('130.236.100.0/25')
+	    netmask = "255.255.255.128"
+	    gateway = "130.236.100.1"
+	    nameservers = scope.lookupvar('nscnets::dns_resolvers').reverse()
 	when IPAddr.new('130.236.101.0/26')
 	    netmask = "255.255.255.192"
 	    gateway = "130.236.101.1"
@@ -47,6 +51,18 @@ reboot
 	    netmask = "255.255.255.192"
 	    gateway = "130.236.101.65"
 	    nameservers = scope.lookupvar('nscnets::dns_resolvers').reverse()
+	when IPAddr.new('130.236.103.112/28')
+	    netmask = "255.255.255.240"
+	    gateway = "130.236.103.113"
+	    nameservers = scope.lookupvar('nscnets::dns_resolvers')
+	when IPAddr.new('10.33.0.0/16')
+	    netmask = "255.255.0.0"
+	    gateway = "10.33.254.1"
+	    nameservers = scope.lookupvar('nscnets::dns_resolvers')
+	when IPAddr.new('192.168.118.0/24')
+	    netmask = "255.255.255.0"
+	    gateway = "192.168.118.10"
+	    nameservers = scope.lookupvar('nscnets::dns_resolvers').reverse()
 	else
 	    raise(Puppet::ParseError,
 		  "Can't configure network for VM #{@name} (#{ipaddr})")
@@ -165,3 +181,13 @@ if not explicit_home
     _erbout += mount_stanza("/home", nil, nil, true)
 end
 -%>
+
+cd /root
+cat > bootstrap << EOF
+wget "http://<%= scope.lookupvar('puppet::master') %>/pkg/puppet/runpuppet.sh"
+chmod +x runpuppet.sh
+PENV=\${1:-production}
+./runpuppet.sh --logdir=/var/log/puppet env=<%= scope.lookupvar('puppet::master') %>:\$PENV --tags=pkgrepo --waitforcert=5
+./runpuppet.sh --logdir=/var/log/puppet env=<%= scope.lookupvar('puppet::master') %>:\$PENV
+EOF
+chmod +x bootstrap
diff --git a/templates/kickstart/xenguest.centos-7.ks.erb b/templates/kickstart/xenguest.centos-7.ks.erb
index 09c518166027e72f24a5bf87c67046742a5ce165..ca238aa6ec927b7c9aa207b76657102585563f75 100644
--- a/templates/kickstart/xenguest.centos-7.ks.erb
+++ b/templates/kickstart/xenguest.centos-7.ks.erb
@@ -39,6 +39,10 @@ reboot
 	ipaddr = Socket.getaddrinfo(@vm_fqdn, nil,
 				    family=Socket::AF_INET)[0][3]
 	case IPAddr.new(ipaddr)
+	when IPAddr.new('130.236.100.0/25')
+	    netmask = "255.255.255.128"
+	    gateway = "130.236.100.1"
+	    nameservers = scope.lookupvar('nscnets::dns_resolvers').reverse()
 	when IPAddr.new('130.236.101.0/26')
 	    netmask = "255.255.255.192"
 	    gateway = "130.236.101.1"
@@ -47,6 +51,18 @@ reboot
 	    netmask = "255.255.255.192"
 	    gateway = "130.236.101.65"
 	    nameservers = scope.lookupvar('nscnets::dns_resolvers').reverse()
+	when IPAddr.new('130.236.103.112/28')
+	    netmask = "255.255.255.240"
+	    gateway = "130.236.103.113"
+	    nameservers = scope.lookupvar('nscnets::dns_resolvers')
+	when IPAddr.new('10.33.0.0/16')
+	    netmask = "255.255.0.0"
+	    gateway = "10.33.254.1"
+	    nameservers = scope.lookupvar('nscnets::dns_resolvers')
+	when IPAddr.new('192.168.118.0/24')
+	    netmask = "255.255.255.0"
+	    gateway = "192.168.118.10"
+	    nameservers = scope.lookupvar('nscnets::dns_resolvers').reverse()
 	else
 	    raise(Puppet::ParseError,
 		  "Can't configure network for VM #{@name} (#{ipaddr})")
@@ -182,4 +198,14 @@ if not explicit_home
     _erbout += mount_stanza("/home", nil, nil, true)
 end
 -%>
+
+cd /root
+cat > bootstrap << EOF
+wget "http://<%= scope.lookupvar('puppet::master') %>/pkg/puppet/runpuppet.sh"
+chmod +x runpuppet.sh
+PENV=\${1:-production}
+./runpuppet.sh --logdir=/var/log/puppet env=<%= scope.lookupvar('puppet::master') %>:\$PENV --tags=pkgrepo --waitforcert=5
+./runpuppet.sh --logdir=/var/log/puppet env=<%= scope.lookupvar('puppet::master') %>:\$PENV
+EOF
+chmod +x bootstrap
 %end