diff --git a/hermes.yml b/ansible.yml
similarity index 52%
rename from hermes.yml
rename to ansible.yml
index 23eeea1..53faca9 100644
--- a/hermes.yml
+++ b/ansible.yml
@@ -2,21 +2,9 @@
 - hosts: all
   gather_facts: no
   tasks:
-    - name: Wait for host to come up
-      wait_for:
-        state: started
-        port: 22
-        host: "{{ internal_ip }}"
-        delay: 10
-        timeout: 300
-        connect_timeout: 300
-        search_regex: OpenSSH
-      delegate_to: localhost
-    - name: Wait for cloud-init to finish
-      command:
-        cmd: cloud-init status --wait
-    - name: Gather facts
-      setup:
+    - name: Wait for cloud init to finish
+      pause:
+        seconds: 120
     - name: Update repositories
       apt:
         autoremove: true
@@ -24,12 +12,6 @@
         state: latest
         update_cache: yes
         cache_valid_time: 86400 # One day
-    - name: Install packages
-      apt:
-        pkg:
-          - qemu-guest-agent
-          - dnsmasq
-          - dnsutils
     - name: Disable systemd-resolved
       systemd:
         name: systemd-resolved
diff --git a/cloud_init.cfg.tftpl b/cloud_init.cfg.tftpl
index 742a0a9..ad50333 100644
--- a/cloud_init.cfg.tftpl
+++ b/cloud_init.cfg.tftpl
@@ -1,7 +1,17 @@
 #cloud-config
-hostname: "${name}"
+hostname: dns
 manage_etc_hosts: true
 ssh_pwauth: false
 disable_root: false
 ssh_authorized_keys:
   - "${host_public_key}"
+chpasswd:
+  list: |
+    root:root
+  expire: False
+packages:
+  - qemu-guest-agent
+  - dnsmasq
+  - dnsutils
+package_update: true
+package_upgrade: true
diff --git a/dnsmasq.conf b/dnsmasq.conf
index 2152d52..b701045 100644
--- a/dnsmasq.conf
+++ b/dnsmasq.conf
@@ -15,9 +15,9 @@ domain=dmz
 # IPv4 DHCP range
 dhcp-range=192.168.30.100,192.168.30.200,infinite
 # Predefined DHCP hosts
-dhcp-host=b8:27:eb:b9:ab:e2,esrom
-dhcp-host=b4:2e:99:77:1b:da,max
-dhcp-host=d8:5e:d3:47:33:6e,lewis
+dhcp-host=b8:27:eb:b9:ab:e2,esrom,192.168.30.2
+dhcp-host=b4:2e:99:77:1b:da,max,192.168.30.3
+dhcp-host=d8:5e:d3:47:33:6e,lewis,192.168.30.6
 # Advertise router
 dhcp-option=3,192.168.30.1
 # Always send the IPv6 DNS server address (this machine)
@@ -36,4 +36,4 @@ server=/pim.kunis.nl/192.168.30.3
 log-dhcp
 log-queries
 # Resolve dns.dmz to addresses on main NIC
-interface-name=hermes.dmz,ens3
+interface-name=dns.dmz,ens3
diff --git a/main.tf b/main.tf
index cb13fed..caff4bc 100644
--- a/main.tf
+++ b/main.tf
@@ -29,11 +29,11 @@ resource "libvirt_cloudinit_disk" "cloudinit" {
   name           = "${var.name}.iso"
   pool           = "init"
   user_data      = templatefile("cloud_init.cfg.tftpl", { name = var.name, host_public_key = var.host_public_key })
-  network_config = templatefile("network_config.cfg.tftpl", { internal_ip = var.internal_ip })
+  network_config = templatefile("network_config.cfg.tftpl", { internal_ip = var.internal_ip})
 }
 
 resource "libvirt_domain" "ubuntu" {
-  name   = "hermes"
+  name   = var.name
   memory = 1024
   vcpu   = 4
 
@@ -42,24 +42,15 @@ resource "libvirt_domain" "ubuntu" {
   }
 
   network_interface {
-    bridge    = "dmzbr"
-    hostname  = var.name
-    mac       = "CA:FE:C0:FF:EE:07"
+    network_name = "dmzbr"
+    hostname     = "dns"
+    addresses    = ["${var.internal_ip}/24"]
+    mac          = "ca:fe:c0:ff:ee:07"
   }
 
   cloudinit = libvirt_cloudinit_disk.cloudinit.id
 
   provisioner "local-exec" {
-    command = "ansible-playbook -e internal_ip=${var.internal_ip} -T 60 -u root -i inventory hermes.yml"
-
-    environment = {
-      ANSIBLE_HOST_KEY_CHECKING = "False"
-    }
-  }
-
-  lifecycle {
-    replace_triggered_by = [
-      libvirt_cloudinit_disk.cloudinit.id
-    ]
+    command = "ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -T 60 -u root -i inventory ansible.yml"
   }
 }
diff --git a/variables.tf b/variables.tf
index 66e1760..352093d 100644
--- a/variables.tf
+++ b/variables.tf
@@ -1,5 +1,5 @@
 variable "name" {
-  default = "hermes"
+  default = "dmzdns"
 }
 
 variable "libvirt_endpoint" {