diff options
| author | Ahmed Abdelhalim <[email protected]> | 2025-09-23 12:41:14 +0200 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2025-09-23 12:43:54 +0200 |
| commit | 889bc61b6ca572e1f3718d8b1723248c73e747e4 (patch) | |
| tree | c228694051b8a19cf8f22c47160f6fa34ef8bee8 | |
| parent | d1853692be4764d26f78c3ad86704f737dc5d141 (diff) | |
Use static values for defaults instead of ansible vars
The ansible vars fail on CI because the validate arguments task runs way
before the setting of the variables, which causes the ansible undefined
vars on CI to cause errors.
This is a way better approach of having the static values as defaults
and allowing setting the variables to ansible vars in the host/group vars
| -rw-r--r-- | host_vars/rpi5.local.yml.example | 2 | ||||
| -rw-r--r-- | molecule/archlinux/converge.yml | 1 | ||||
| -rw-r--r-- | molecule/debian/converge.yml | 1 | ||||
| -rw-r--r-- | molecule/raspberrypi/converge.yml | 1 | ||||
| -rw-r--r-- | molecule/ubuntu/converge.yml | 1 | ||||
| -rw-r--r-- | roles/gateway/defaults/main.yml | 2 | ||||
| -rw-r--r-- | roles/gateway/meta/argument_specs.yml | 2 | ||||
| -rw-r--r-- | roles/pihole/defaults/main.yml | 5 | ||||
| -rw-r--r-- | roles/pihole/meta/argument_specs.yml | 5 | ||||
| -rw-r--r-- | roles/pihole/tasks/main.yml | 11 |
10 files changed, 16 insertions, 15 deletions
diff --git a/host_vars/rpi5.local.yml.example b/host_vars/rpi5.local.yml.example index bfc05d83..9361aae3 100644 --- a/host_vars/rpi5.local.yml.example +++ b/host_vars/rpi5.local.yml.example @@ -12,7 +12,7 @@ pihole_interface: "{{ network_interface }}" pihole_dhcp_enabled: true pihole_dhcp_start: "10.0.0.100" pihole_dhcp_end: "10.0.0.199" -pihole_dhcp_router: "10.0.0.200" +pihole_dhcp_router: "{{ network_ipv4_address }}" pihole_dhcp_hosts: - "ff:ff:ff:ff:ff:fe, 10.0.0.252,TV" - "ff:ff:ff:ff:ff:ff, 10.0.0.253,Printer" diff --git a/molecule/archlinux/converge.yml b/molecule/archlinux/converge.yml index 331bb85f..2e810013 100644 --- a/molecule/archlinux/converge.yml +++ b/molecule/archlinux/converge.yml @@ -14,7 +14,6 @@ wireguard_autostart_connection: "" gateway_enabled: true gateway_local_ipv4_subnet: "10.0.0.0/24" - gateway_router_interface: "eth0" python_global_version: "3.13" python_versions: - "3.13" diff --git a/molecule/debian/converge.yml b/molecule/debian/converge.yml index b98cb9a5..c92b57be 100644 --- a/molecule/debian/converge.yml +++ b/molecule/debian/converge.yml @@ -14,7 +14,6 @@ wireguard_autostart_connection: "" gateway_enabled: false gateway_local_ipv4_subnet: "10.0.0.0/24" - gateway_router_interface: "eth0" python_global_version: "3.13" python_versions: - "3.13" diff --git a/molecule/raspberrypi/converge.yml b/molecule/raspberrypi/converge.yml index 0785452f..df23f2d8 100644 --- a/molecule/raspberrypi/converge.yml +++ b/molecule/raspberrypi/converge.yml @@ -16,7 +16,6 @@ wireguard_autostart_connection: "" gateway_enabled: true gateway_local_ipv4_subnet: "10.0.0.0/24" - gateway_router_interface: "eth0" grafana_dashboards: - id: 1860 revision: 37 diff --git a/molecule/ubuntu/converge.yml b/molecule/ubuntu/converge.yml index ded641cd..0ee35653 100644 --- a/molecule/ubuntu/converge.yml +++ b/molecule/ubuntu/converge.yml @@ -14,7 +14,6 @@ wireguard_autostart_connection: "" gateway_enabled: false gateway_local_ipv4_subnet: "10.0.0.0/24" - gateway_router_interface: "eth0" python_global_version: "3.13" python_versions: - "3.13" diff --git a/roles/gateway/defaults/main.yml b/roles/gateway/defaults/main.yml index 4f062143..ebe33a12 100644 --- a/roles/gateway/defaults/main.yml +++ b/roles/gateway/defaults/main.yml @@ -1,3 +1,3 @@ --- gateway_enabled: false -gateway_router_interface: "{{ ansible_default_ipv4.interface }}" +gateway_router_interface: "eth0" diff --git a/roles/gateway/meta/argument_specs.yml b/roles/gateway/meta/argument_specs.yml index 0312bef2..e5d14e35 100644 --- a/roles/gateway/meta/argument_specs.yml +++ b/roles/gateway/meta/argument_specs.yml @@ -16,5 +16,5 @@ argument_specs: gateway_router_interface: description: "Default route interface for direct routing mode" type: "str" - default: "{{ ansible_default_ipv4.interface }}" + default: "eth0" required: false diff --git a/roles/pihole/defaults/main.yml b/roles/pihole/defaults/main.yml index f5a5047c..4e1d0bf7 100644 --- a/roles/pihole/defaults/main.yml +++ b/roles/pihole/defaults/main.yml @@ -8,12 +8,9 @@ pihole_dns: # Google - "8.8.8.8" - "2001:4860:4860:0:0:0:0:8888" -pihole_interface: "{{ ansible_default_ipv4.interface }}" +pihole_interface: "eth0" pihole_dns_blocking_enabled: true pihole_dhcp_enabled: false -pihole_dhcp_start: "{{ ansible_default_ipv4.network | regex_replace('\\.0$', '.100') }}" -pihole_dhcp_end: "{{ ansible_default_ipv4.network | regex_replace('\\.0$', '.199') }}" -pihole_dhcp_router: "{{ ansible_default_ipv4.address }}" pihole_dhcp_lease_time: "" pihole_dhcp_domain: "local" pihole_dhcp_hosts: [] diff --git a/roles/pihole/meta/argument_specs.yml b/roles/pihole/meta/argument_specs.yml index e6ba264e..9b71f48b 100644 --- a/roles/pihole/meta/argument_specs.yml +++ b/roles/pihole/meta/argument_specs.yml @@ -26,7 +26,7 @@ argument_specs: pihole_interface: type: "str" description: "The interface to bind the pi-hole on" - default: "{{ ansible_default_ipv4.interface }}" + default: "eth0" pihole_dns_blocking_enabled: type: "bool" description: "The boolean flag to toggle DNS blocking" @@ -38,15 +38,12 @@ argument_specs: pihole_dhcp_start: type: "str" description: "The dhcp start address" - default: "{{ ansible_default_ipv4.network }}.100" pihole_dhcp_end: type: "str" description: "The dhcp end address" - default: "{{ ansible_default_ipv4.network }}.199" pihole_dhcp_router: type: "str" description: "The dhcp server router (gateway) address" - default: "{{ ansible_default_ipv4.address }}" pihole_dhcp_lease_time: type: "str" description: "The dhcp lease time string ex. ('45m', '1h', '2d', '1w') empty defaults to dnsmasq default" diff --git a/roles/pihole/tasks/main.yml b/roles/pihole/tasks/main.yml index 7e0e7697..6556a7ce 100644 --- a/roles/pihole/tasks/main.yml +++ b/roles/pihole/tasks/main.yml @@ -4,6 +4,17 @@ msg: "Pihole role cannot work when network_ipv4_dns or network_ipv6_dns are defined" when: network_ipv4_dns is defined or network_ipv6_dns is defined +- name: "Validate pihole_dhcp_* params" + ansible.builtin.assert: + that: + - pihole_dhcp_start is defined + - pihole_dhcp_end is defined + - pihole_dhcp_router is defined + - pihole_dhcp_lease_time is defined + - pihole_dhcp_domain is defined + - pihole_dhcp_hosts is defined + when: pihole_dhcp_enabled + - name: "Crete Pi-hole user" ansible.builtin.user: name: "pihole" |
