https://gist.github.com/rothgar/8793800
ここで議論されてますが、この方法がシンプルで、融通も効きそう。
テンプレートになっているので、他の記述も追加できるし。
- name: Generate /etc/hosts file
template:
src=files/hosts.j2
dest=/etc/hosts
files/hosts.j2
# {{ ansible_managed }}
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
{% for item in play_hosts %}
{% set short_name = item.split('.') %}
{{ hostvars[item]['ansible_default_ipv4']['address'] }} {{ item }} {{ short_name[0] }}
{% endfor %}