commit 72dbcd241f56a19a55eb10f6a650e59d707488d6 Author: Gardais Jérémy Date: Thu Jan 11 15:33:54 2018 +0100 Manage localhost and default_ipv4 line in /etc/hosts. diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..87bf8a5 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,6 @@ + +## v1.0 + +### Features +* Manage localhost line in /etc/hosts. +* Manage ipv4 line in /etc/hosts. diff --git a/README.md b/README.md new file mode 100644 index 0000000..62097fb --- /dev/null +++ b/README.md @@ -0,0 +1,63 @@ +# Basics + +1. [Overview](#overview) +2. [Role Variables](#role-variables) +3. [Example Playbook](#example-playbook) +4. [Configuration](#configuration) + * [Hosts](#hosts) +5. [Development](#development) +6. [License](#license) +7. [Author Information](#author-information) + +## Overview + +Manage some basics configuration for IPR's servers. + +## Role Variables + +* **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 : `{{ ansible_hostname }}.{{ basics__domain }} {{ ansible_hostname }} 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 }}`]. + +## Example Playbook + +* Use defaults vars : + +``` yml +- hosts: serverXYZ + roles: + - role: ipr-cnrs.basics +``` + +## 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 or/and the ipv4 (lan) line. + +## Development + +This source code comes from our [Gogs instance][basics source] and the [Github repo][basics github] exist just to be able to send the role to Ansible Galaxy… + +But feel free to send issue/PR here :) + +Thanks to this [hook][gogs to github hook], Github automatically got updates from our [Gogs instance][basics source] :) + +## License + +[WTFPL][wtfpl website] + +## Author Information + +Jérémy Gardais +* Source : [on IPR's Gogs][basics source] +* [IPR][ipr website] (Institut de Physique de Rennes) + +[gogs to github hook]: https://stackoverflow.com/a/21998477 +[basics source]: https://git.ipr.univ-rennes1.fr/cellinfo/ansible.basics +[basics github]: https://github.com/ipr-cnrs/basics +[wtfpl website]: http://www.wtfpl.net/about/ +[ipr website]: https://ipr.univ-rennes1.fr/ diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..5a66a28 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,12 @@ +--- +# defaults file for basics + +# Domain +basics__domain: "{{ ansible_domain }}" + +# Manage /etc/hosts +basics__hosts_localhost_manage: false +basics__hosts_localhost_content: "{{ ansible_hostname }}.{{ basics__domain }} {{ ansible_hostname }} localhost.localdomain localhost" +basics__hosts_ipv4_manage: false +basics__hosts_ipv4_content: "{{ ansible_hostname }}.{{ basics__domain }} {{ ansible_hostname }}" + diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..1258780 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for basics diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..8c79045 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,22 @@ +galaxy_info: + author: "Jérémy Gardais" + description: "Manage some basics configurations for IPR's servers." + license: WTFPL + company: IPR + issue_tracker_url: https://git.ipr.univ-rennes1.fr/cellinfo/ansible.basics/issues + min_ansible_version: 2.2 + platforms: + - name: Debian + versions: + - stretch + #- name: opensuse + # versions: + # - all + # - 12.1 + # - 12.2 + # - 12.3 + # - 13.1 + # - 13.2 + galaxy_tags: + - system + - debian diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..8de9640 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,22 @@ +--- +# tasks file for basics + +- name: Set 127.0.0.1 line in hosts file + lineinfile: + dest: /etc/hosts + state: present + regexp: "^{{ ansible_lo.ipv4.address }}" + line: "{{ ansible_lo.ipv4.address }} {{ basics__hosts_localhost_content }}" + backup: yes + when: (basics__hosts_localhost_manage and + ansible_lo.ipv4.address is defined) + +- name: Set ipv4 line in hosts file + lineinfile: + dest: /etc/hosts + state: present + regexp: "^{{ ansible_default_ipv4.address }}" + line: "{{ ansible_default_ipv4.address }} {{ basics__hosts_ipv4_content }}" + backup: yes + when: (basics__hosts_ipv4_manage and + ansible_default_ipv4.address is defined) diff --git a/tests/inventory b/tests/inventory new file mode 100644 index 0000000..d18580b --- /dev/null +++ b/tests/inventory @@ -0,0 +1 @@ +localhost \ No newline at end of file diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 0000000..09d344b --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - apt \ No newline at end of file