01 consul setup

As my hardware has multiple IPv4 addresses, the following need setting:

bind_addr = "{{ ansible_default_ipv4.address }}"
client_addr = "127.0.0.1 {{ ansible_default_ipv4.address }}"

which typically results in something like:

Changes required to Consul config file:

addresses = {
   dns = "127.0.0.1 {{ ansible_default_ipv4.address }}"
   http = "127.0.0.1 {{ ansible_default_ipv4.address }}"
   grpc = "127.0.0.1 {{ ansible_default_ipv4.address }}"
   }

so dns, http are available locally to consul, and across the network (http for GUI / human interface)

This allows consul (& nomad) to connect locally

Configure network-wide DNS server (Pi.Hole in this instance - so, DNSMasq), to conditionally forward

.consul

TLD to Consul servers:

server=/consul/192.168.1.30#8600
server=/consul/192.168.1.31#8600
server=/consul/192.168.1.32#8600
server=/consul/192.168.1.33#8600