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" {