Added role to manage the hosts file
This commit is contained in:
parent
31400a85ac
commit
ef924eaf5d
32
roles/hostsfile/defaults/main.yaml
Normal file
32
roles/hostsfile/defaults/main.yaml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
hostsfile_loopback:
|
||||||
|
127.0.0.1:
|
||||||
|
- localhost
|
||||||
|
- localhost.localdomain
|
||||||
|
- localhost4
|
||||||
|
- localhost4.localdomain4
|
||||||
|
::1:
|
||||||
|
- localhost
|
||||||
|
- localhost.localdomain
|
||||||
|
- localhost6
|
||||||
|
- localhost6.localdomain4
|
||||||
|
- ip6-localhost
|
||||||
|
- ip6-loopback
|
||||||
|
|
||||||
|
hostsfile_self:
|
||||||
|
"{{ ansible_default_ipv4.address }}":
|
||||||
|
- "{{ ansible_fqdn }}"
|
||||||
|
"{{ ansible_default_ipv6.address }}":
|
||||||
|
- "{{ ansible_fqdn }}"
|
||||||
|
|
||||||
|
hostsfile_routers:
|
||||||
|
ff02::1:
|
||||||
|
- ip6-allnodes
|
||||||
|
ff02::2:
|
||||||
|
- ip6-allrouters
|
||||||
|
|
||||||
|
hostsfile_hosts: {}
|
||||||
|
|
||||||
|
hostsfile_combined: "{{ hostsfile_loopback
|
||||||
|
| combine(hostsfile_hosts)
|
||||||
|
| combine(hostsfile_self) }}"
|
8
roles/hostsfile/tasks/main.yaml
Normal file
8
roles/hostsfile/tasks/main.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- name: configure hosts file
|
||||||
|
template:
|
||||||
|
src: hosts.j2
|
||||||
|
dest: /etc/hosts
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
33
roles/hostsfile/templates/hosts.j2
Normal file
33
roles/hostsfile/templates/hosts.j2
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
{% macro render(hosts, comment=None) %}
|
||||||
|
{% if hosts is defined and hosts | length %}
|
||||||
|
{% if comment is not none %}
|
||||||
|
# {{ comment }}
|
||||||
|
{% endif %}
|
||||||
|
{% for ip, names in hosts.items() | default({}) %}
|
||||||
|
{{ ip }} {{ names | join(' ') }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
{{ render(hostsfile_loopback, comment="Loopback") }}
|
||||||
|
{{ render(hostsfile_routers, comment="Routers") }}
|
||||||
|
|
||||||
|
# Self
|
||||||
|
{% if 'address' in ansible_default_ipv4 %}
|
||||||
|
{{ ansible_default_ipv4.address }} {{ inventory_hostname }} {{ inventory_hostname_short }}
|
||||||
|
{% endif %}
|
||||||
|
{% if 'address' in ansible_default_ipv6 %}
|
||||||
|
{{ ansible_default_ipv6.address }} {{ inventory_hostname }} {{ inventory_hostname_short }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# Gateways
|
||||||
|
{% if 'gateway' in ansible_default_ipv4 %}
|
||||||
|
{{ ansible_default_ipv4.gateway }} gateway
|
||||||
|
{% endif %}
|
||||||
|
{% if 'gateway' in ansible_default_ipv6 %}
|
||||||
|
{{ ansible_default_ipv6.gateway }} gateway6
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{{ render(hostsfile_hosts, comment="Hosts") }}
|
Loading…
Reference in New Issue
Block a user