33 lines
1014 B
YAML
33 lines
1014 B
YAML
---
|
|
- name: Retrieve current hostsfile contents
|
|
ansible.builtin.command:
|
|
cmd: cat /etc/hosts
|
|
changed_when: false
|
|
register: _existing_hostsfile_raw
|
|
|
|
- name: Assemble hostsfile lines
|
|
vars:
|
|
_hostsfile_lines: []
|
|
ansible.builtin.set_fact:
|
|
_hostsfile_lines: "{{ _hostsfile_lines + [hostvars[item].skylab_cluster.address.internal | ansible.netcommon.ipaddr('address') + ' ' + item + '.local ' + hostvars[item].skylab_legacy_names | default([]) | join(' ')] }}"
|
|
loop: "{{ groups.cluster }}"
|
|
|
|
- name: Configure local hostsfile
|
|
become: true
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/hosts
|
|
line: "{{ item }}"
|
|
state: present
|
|
loop: "{{ _hostsfile_lines }}"
|
|
loop_control:
|
|
label: "{{ item.partition(' ')[0] }}"
|
|
|
|
- name: Remove unmanaged hostsfile entries
|
|
become: true
|
|
when: "'localhost' not in item and item not in _hostsfile_lines"
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/hosts
|
|
line: "{{ item }}"
|
|
state: absent
|
|
loop: "{{ _existing_hostsfile_raw.stdout_lines }}"
|