From 50aaf88a20d7f7208ad4830822ca54b22d0ca276 Mon Sep 17 00:00:00 2001 From: Daniel Pawlik Date: Fri, 14 Nov 2025 13:25:11 +0100 Subject: [PATCH] Re-add DNS nameservers into /etc/resolv.conf on NetworkManager restart After restarting NetworkManager, the /etc/resolv.conf file is cleaned-up to default values, so it might not contain local dnsmasq ip address set as first nameserver. Change order to avoid situation that none nameserver would be available in /etc/resolv.conf file. Signed-off-by: Daniel Pawlik --- .../roles/deploy-crc-cloud/tasks/dnsmasq.yaml | 41 +++++++++++-------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/ansible/roles/deploy-crc-cloud/tasks/dnsmasq.yaml b/ansible/roles/deploy-crc-cloud/tasks/dnsmasq.yaml index 5bb81f7d..17fb0aa0 100644 --- a/ansible/roles/deploy-crc-cloud/tasks/dnsmasq.yaml +++ b/ansible/roles/deploy-crc-cloud/tasks/dnsmasq.yaml @@ -1,5 +1,30 @@ --- # From https://github.com/crc-org/crc-cloud/blob/main/pkg/bundle/setup/clustersetup.sh#L101 +- name: Disable overwriting /etc/resolv.conf by the NetworkManager + become: true + ansible.builtin.copy: + content: | + [main] + dns=none + dest: /etc/NetworkManager/conf.d/00-custom-crc.conf + register: _disable_dns_overwrite + +- name: Restart NetworkManager when its needed + when: _disable_dns_overwrite.changed + become: true + ansible.builtin.systemd: + name: NetworkManager + state: restarted + +- name: Ensure /etc/resolv.conf is not a symlink and is writable + become: true + ansible.builtin.file: + path: /etc/resolv.conf + state: file + owner: root + group: root + mode: '0644' + - name: Create crc-dnsmasq.conf become: true ansible.builtin.copy: @@ -26,22 +51,6 @@ loop: "{{ [ansible_default_ipv4.address] + ansible_facts['dns']['nameservers'] | flatten }}" register: _etc_resolv -- name: Disable overwriting /etc/resolv.conf by the NetworkManager - become: true - ansible.builtin.copy: - content: | - [main] - dns=none - dest: /etc/NetworkManager/conf.d/00-custom-crc.conf - register: _disable_dns_overwrite - -- name: Restart NetworkManager when its needed - when: _disable_dns_overwrite.changed - become: true - ansible.builtin.systemd: - name: NetworkManager - state: restarted - - name: Restart dnsmasq when: _etc_resolv.changed become: true