diff --git a/README.md b/README.md index 3edfbf7..e293de8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,59 @@ -# role_modele +# role_etc_hosts -Modèle \ No newline at end of file +Gérer le fichier /etc/hosts + +## Variables + +### etc_hosts_local + +Liste de nom d'hôte attaché à 127.0.0.1. + +Valeur par défaut: aucune + +### etc_hosts_specifics + +Liste de ligne à ajouter à `/etc/hosts`. + +Valeur par défaut: aucune + +--- + +## Exemple d'utilisation + +### inventory.yml + +```yaml +--- + +all: + hosts: + host1.ykn.local: + host2.ykn.local: + children: + dnsservers: + hosts: + dnsmasq1.ykn.local: + dnsmasq2.ykn.local: +``` + +### host_vars/host1.ykn.local.yml + +```yaml +--- + +etc_hosts_local: + - www.ykn.fr + +etc_hosts_specifics: + - 192.168.50.200 gitea.ykn.fr +``` + +### playbook.yml + +```yaml +--- + +- hosts: 'all' + roles: + - name: etc_hosts +``` diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..e39a917 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,5 @@ +--- +# defaults file for etc_hosts + +etc_hosts_local: [] +etc_hosts_specifics: [] diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..522595c --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for etc_hosts diff --git a/meta/main.yml b/meta/main.yml index c58bebf..818c0dc 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,7 +1,7 @@ galaxy_info: namespace: ykn author: pulsar89.5 - description: Rôle modèle + description: Gérer le fichier /etc/hosts license: GPL-3.0-or-later diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..29615f8 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,9 @@ +--- +# tasks file for etc_hosts + +- name: Déployer le fichier /etc/hosts + ansible.builtin.template: + mode: u=rw,g=r,o=r + src: hosts.j2 + dest: /etc/hosts + become: true diff --git a/templates/hosts.j2 b/templates/hosts.j2 new file mode 100644 index 0000000..9b2c23c --- /dev/null +++ b/templates/hosts.j2 @@ -0,0 +1,28 @@ +# {{ ansible_managed }} + +{%- if inventory_hostname != inventory_hostname_short %} + {%- set host = inventory_hostname ~ ' ' ~ inventory_hostname_short %} +{%- else %} + {% set host = inventory_hostname_short %} +{%- endif %} + +{%- if etc_hosts_local | length > 0 %} + {% set line = host ~ ' ' ~ (etc_hosts_local | join(' ')) %} +{%- else %} + {% set line = host %} +{%- endif +%} + +127.0.0.1 {{ line }} localhost + +# The following lines are desirable for IPv6 capable hosts +::1 {{ line }} localhost ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +ff02::3 ip6-allhosts + +{% if etc_hosts_specifics | length > 0 %} +# The following lines are specified by instance configuration +{{ etc_hosts_specifics | join('\n') }} +{% endif %}