我正在使用 ansible 为我的每台服务器创建一个主机文件,根据收集到的事实,我包括默认的 IPv4 和 IPv6 地址,一切正常,我正在努力解决的是如何填充模板没有 IPv6 地址。我正在使用
{{ ansible_default_ipv6.address }} {{ inventory_hostname }} {{ inventory_hostname_short }}
但是如果不存在则任务失败
我不知道该尝试什么
问:“没有 IPv6 地址时如何填充模板?”
模板文件可能类似于
hosts.j2
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
{{ ansible_default_ipv4.address }} {{ inventory_hostname }} {{ inventory_hostname_short }}
{% if ansible_default_ipv6.address is defined %}
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
{{ ansible_default_ipv6.address }} {{ inventory_hostname }} {{ inventory_hostname_short }}
{% endif %}
任务只是
- name: Template a file to /etc/hosts
ansible.builtin.template:
src: templates/hosts.j2
dest: /etc/hosts
并适应、调整、增强您的需求。