summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2025-09-23 12:41:14 +0200
committerAhmed Abdelhalim <[email protected]>2025-09-23 12:43:54 +0200
commit889bc61b6ca572e1f3718d8b1723248c73e747e4 (patch)
treec228694051b8a19cf8f22c47160f6fa34ef8bee8
parentd1853692be4764d26f78c3ad86704f737dc5d141 (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.example2
-rw-r--r--molecule/archlinux/converge.yml1
-rw-r--r--molecule/debian/converge.yml1
-rw-r--r--molecule/raspberrypi/converge.yml1
-rw-r--r--molecule/ubuntu/converge.yml1
-rw-r--r--roles/gateway/defaults/main.yml2
-rw-r--r--roles/gateway/meta/argument_specs.yml2
-rw-r--r--roles/pihole/defaults/main.yml5
-rw-r--r--roles/pihole/meta/argument_specs.yml5
-rw-r--r--roles/pihole/tasks/main.yml11
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"