From 9c461e1018e16b8f405b4841d3de13c510b417bf Mon Sep 17 00:00:00 2001 From: ant31 <2t.antoine@gmail.com> Date: Tue, 5 Jan 2016 12:23:14 +0100 Subject: [PATCH] Use inline update for resolv.conf --- roles/dnsmasq/tasks/main.yml | 41 ++++++++++++++++++++++---- roles/dnsmasq/templates/resolv.conf.j2 | 9 ------ 2 files changed, 36 insertions(+), 14 deletions(-) delete mode 100644 roles/dnsmasq/templates/resolv.conf.j2 diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml index 2dda0f840..73caa4f95 100644 --- a/roles/dnsmasq/tasks/main.yml +++ b/roles/dnsmasq/tasks/main.yml @@ -53,11 +53,37 @@ timeout: 100 when: inventory_hostname in groups['kube-master'] -- name: update resolv.conf with new DNS setup - template: - src: resolv.conf.j2 - dest: /etc/resolv.conf - mode: 644 +- name: check resolvconf + stat: path=/etc/resolvconf/resolv.conf.d/head + register: resolvconf + +- name: target resolv.conf file + set_fact: + resolvconffile: > + {%- if resolvconf.stat.exists == True -%} + /etc/resolvconf/resolv.conf.d/head + {%- else -%} + /etc/resolv.conf + {%- endif -%} + +- name: Add search resolv.conf + lineinfile: + line: search {{ [ 'default.svc.' + dns_domain, 'svc.' + dns_domain, dns_domain ] | join(' ') }} + dest: "{{resolvconffile}}" + state: present + insertafter: EOF + backup: yes + follow: yes + +- name: Add all masters as nameserver + lineinfile: + line: nameserver {{ hostvars[item]['ansible_default_ipv4']['address'] }} + dest: "{{resolvconffile}}" + state: present + insertafter: EOF + backup: yes + follow: yes + with_items: groups['kube-master'] - name: disable resolv.conf modification by dhclient copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate mode=u+x backup=yes @@ -67,4 +93,9 @@ copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/nodnsupdate mode=u+x backup=yes when: ansible_os_family == "RedHat" +- name: update resolvconf + command: resolvconf -u + changed_when: False + when: resolvconf.stat.exists == True + - meta: flush_handlers diff --git a/roles/dnsmasq/templates/resolv.conf.j2 b/roles/dnsmasq/templates/resolv.conf.j2 deleted file mode 100644 index f0b475b02..000000000 --- a/roles/dnsmasq/templates/resolv.conf.j2 +++ /dev/null @@ -1,9 +0,0 @@ -; generated by ansible -search {{ [ 'default.svc.' + dns_domain, 'svc.' + dns_domain, dns_domain ] | join(' ') }} -{% if inventory_hostname in groups['kube-master'] %} -nameserver {{ ansible_default_ipv4.address }} -{% else %} -{% for host in groups['kube-master'] %} -nameserver {{ hostvars[host]['ansible_default_ipv4']['address'] }} -{% endfor %} -{% endif %}