From 3ff80a95e78cad018eef261ed1e9f54c92637854 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gardais=20J=C3=A9r=C3=A9my?= Date: Fri, 12 Jan 2018 17:12:11 +0100 Subject: [PATCH] Purge conditions of /etc/hosts are the same as permanent ip address (ipv4). --- CHANGELOG.md | 3 ++- README.md | 19 ++++++++++--------- tasks/main.yml | 10 +++++----- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8de1311..d11664b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,10 @@ -## v1.0.X +## v1.0.1 ## Enhancements * Add example playbook. * localhost line sould not contain hostname information (see https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_the_hostname_resolution). * Purge /etc/hosts of multiple lines that contains $HOSTNAME without the default ipv4 ip address. +* Purge conditions of /etc/hosts are the same as permanent ip address (ipv4). ## v1.0 diff --git a/README.md b/README.md index 62e1fa7..a8c967c 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,12 @@ Manage some basics configuration for IPR's servers. * **basics__domain** : Domain to use [default : `{{ ansible_domain }}`]. * **basics__hosts_localhost_manage** : If the localhost (127.0.0.1) line should be managed [default : `false`]. * **basics__hosts_localhost_content** : Content of the localhost (127.0.0.1) line [default : `localhost.localdomain localhost`]. -* **basics__hosts_ipv4_manage** : If the ipv4 (lan) line should be managed [default : `false`]. -* **basics__hosts_ipv4_content** : Content of the ipv4 (lan) line [default : `{{ ansible_hostname }}.{{ basics__domain }} {{ ansible_hostname }}`]. +* **basics__hosts_ipv4_manage** : If the ipv4 address line should be managed [default : `false`]. +* **basics__hosts_ipv4_content** : Content of the ipv4 address line [default : `{{ ansible_hostname }}.{{ basics__domain }} {{ ansible_hostname }}`]. ## Example Playbook -* If you want to manage both localhost (127.0.0.1) and permanent IP (lan/ipv4) lines : +* If you want to manage both localhost (127.0.0.1) and permanent IP (ipv4) lines : ``` yml - hosts: serverXYZ @@ -39,18 +39,19 @@ Manage some basics configuration for IPR's servers. - hosts: serverXYZ roles: - role: ipr-cnrs.basics - basics__hosts_localhost_manage: true basics__domain: 'mydomain.org' + basics__hosts_ipv4_manage: true ```` ## Configuration ### Hosts -- Ensure to have the correct fqdn and hostname in /etc/hosts. - - You can define the domain if it's not correct on the remote host. - - You can choose to define the localhost (127.0.0.1) line content. - - You can choose to define the permanent ip (127.0.0.1) line content. - - All other lines that contains hostname without this permanent ip will be removed. + +Ensure to have the correct fqdn and hostname in /etc/hosts : +- You can define the domain if it's not correct on the remote host. +- You can choose to define the localhost (127.0.0.1) line content. +- You can choose to define the permanent ip (ipv4) line content. + - All other lines that contains hostname without this permanent ip address will be removed. ## Development diff --git a/tasks/main.yml b/tasks/main.yml index 6cb4092..f3dd44d 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -3,7 +3,7 @@ ## Modify /etc/hosts -- name: Set 127.0.0.1 line in hosts file +- name: Config host - Set 127.0.0.1 line in hosts file lineinfile: dest: /etc/hosts state: present @@ -13,7 +13,7 @@ when: (basics__hosts_localhost_manage and ansible_lo.ipv4.address is defined) -- name: Set ipv4 line in hosts file +- name: Config host - Set ipv4 line in hosts file lineinfile: dest: /etc/hosts state: present @@ -22,14 +22,14 @@ backup: yes when: (basics__hosts_ipv4_manage and ansible_default_ipv4.address is defined) - register: basics__register_ipv4_line -- name: Purge other lines with hostname +- name: Config host - Purge other lines with hostname lineinfile: dest: /etc/hosts state: absent regexp: '^(?!({{ ansible_default_ipv4.address }})).*{{ ansible_hostname }}' backup: yes - when: basics__register_ipv4_line.changed + when: (basics__hosts_ipv4_manage and + ansible_default_ipv4.address is defined) ## }}}