Skip to content
Snippets Groups Projects
Commit 1432e511 authored by Erwan Miran's avatar Erwan Miran
Browse files

same work with less lines

parent a7b0c454
Branches
Tags
No related merge requests found
......@@ -34,7 +34,15 @@ preinstall_selinux_state: permissive
sysctl_file_path: "/etc/sysctl.d/99-sysctl.conf"
etc_hosts_filter:
etc_hosts_localhost_entries:
127.0.0.1:
expected:
- localhost
- localhost.localdomain
::1:
expected:
- localhost6
- localhost6.localdomain
unexpected:
- localhost
- localhost.localdomain
......@@ -29,38 +29,20 @@
- name: Hosts | Extract existing entries for localhost from hosts file
set_fact:
entry: "{{ item | regex_replace('[ ]+', ' ')|regex_replace('#.+$')|trim }}"
etc_hosts_localhosts_dict: >-
{%- set splitted = (item | regex_replace('[ ]+', ' ')|regex_replace('#.+$')|trim).split( ' ') -%}
{{ etc_hosts_localhosts_dict|default({}) | combine({splitted[0]: splitted[1::] }) }}
with_items: "{{ (etc_hosts_content['content'] | b64decode).split('\n') }}"
register: etc_hosts_localhosts
when:
- etc_hosts_content.content is defined
- (item|match('^::1 .*') or item|match('^127.0.0.1 .*'))
- name: Hosts | Convert extract entries for localhost as dict
set_fact:
etc_hosts_localhosts_dict: >-
{% set splitted = item.split(' ') %}{{ etc_hosts_localhosts_dict|default({}) | combine({splitted[0]: splitted[1::] }) }}
with_items: "{{ etc_hosts_localhosts.results | selectattr('ansible_facts', 'defined') | map(attribute='ansible_facts.entry') | list }}"
- name: Hosts | Initiate target hosts file entries dict and filter unwanted values
set_fact:
etc_hosts_localhosts_dict_target: >-
{%- set target_entries = [] -%}
{%- for entry in item.value -%}
{%- if entry not in etc_hosts_filter.get(item.key,[]) -%}
{%- set DO = target_entries.append(entry) -%}
{%- endif -%}
{%- endfor -%}
{{ etc_hosts_localhosts_dict_target|default({}) | combine({item.key: target_entries}) }}
with_dict: "{{etc_hosts_localhosts_dict}}"
- etc_hosts_localhost_entries.keys()|map('regex_replace', '(.*)', '^\\1 .*') | map('match', item) | list | length > 0
- name: Hosts | Update target hosts file entries dict with required entries
set_fact:
etc_hosts_localhosts_dict_target: >-
{{ etc_hosts_localhosts_dict_target|default({}) | combine({item.ip: (etc_hosts_localhosts_dict_target[item.ip]|default([]) + item.entries)|unique}) }}
with_items:
- {ip: '127.0.0.1', entries: ['localhost', 'localhost.localdomain']}
- {ip: '::1', entries: ['localhost6', 'localhost6.localdomain']}
{%- set target_entries = etc_hosts_localhosts_dict.get(item.key, []) | difference(item.value.get('unexpected' ,[])) -%}
{{ etc_hosts_localhosts_dict_target|default({}) | combine({item.key: (target_entries + item.value.expected)|unique}) }}
with_dict: "{{ etc_hosts_localhost_entries }}"
- name: Hosts | Update (if necessary) hosts file
lineinfile:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment