summaryrefslogtreecommitdiffstats
path: root/roles/network
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-07-10 19:58:15 +0200
committerAhmed Abdelhalim <[email protected]>2026-07-12 22:05:17 +0200
commit066c71e7863dbcf14322c36cbea649778601f7de (patch)
tree81111c57d6ca3647f31a974541cb7c67d481bba6 /roles/network
parentafc6aab3497d086ee8c7f00db0336a17212c56c9 (diff)
Configure preference of ip family (ipv4 > ipv6)
Diffstat (limited to 'roles/network')
-rw-r--r--roles/network/defaults/main.yml1
-rw-r--r--roles/network/tasks/main.yml9
-rw-r--r--roles/network/templates/gai.conf.j210
3 files changed, 20 insertions, 0 deletions
diff --git a/roles/network/defaults/main.yml b/roles/network/defaults/main.yml
index 5e1076a7..9497f83f 100644
--- a/roles/network/defaults/main.yml
+++ b/roles/network/defaults/main.yml
@@ -1,3 +1,4 @@
---
network_wifi_ssid: ""
network_wifi_pass: ""
+network_prefer_ipv4: false
diff --git a/roles/network/tasks/main.yml b/roles/network/tasks/main.yml
index 3bd85040..f8873379 100644
--- a/roles/network/tasks/main.yml
+++ b/roles/network/tasks/main.yml
@@ -59,6 +59,15 @@
changed_when: false
when: network_wifi_ssid != ""
+- name: "Configure address family preference"
+ become: true
+ ansible.builtin.template:
+ src: "gai.conf.j2"
+ dest: "/etc/gai.conf"
+ owner: "root"
+ group: "root"
+ mode: "0644"
+
- name: "Configure NetworkManager"
become: true
notify:
diff --git a/roles/network/templates/gai.conf.j2 b/roles/network/templates/gai.conf.j2
new file mode 100644
index 00000000..21c17332
--- /dev/null
+++ b/roles/network/templates/gai.conf.j2
@@ -0,0 +1,10 @@
+# Managed by Ansible — controls getaddrinfo address family preference
+{% if network_prefer_ipv4 %}
+precedence ::ffff:0:0/96 100
+{% else %}
+precedence ::1/128 50
+precedence ::/0 40
+precedence 2002::/16 30
+precedence ::/96 20
+precedence ::ffff:0:0/96 10
+{% endif %}