我正在使用 Ansible 为我的每台服务器创建一个
hosts
文件,根据收集到的事实,我包括了默认的 IPv4 和 IPv6 地址,并且一切正常。
我正在努力解决的是在没有 IPv6 地址的情况下如何填充模板?
我正在使用
{{ ansible_default_ipv6.address }} {{ inventory_hostname }} {{ inventory_hostname_short }}
但如果不存在,任务就会失败。
我不知道该尝试什么。
问:“没有 IPv6 地址时如何填充模板?”
在 Jinja2 模板测试的示例中。
模板文件可能类似于
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
并适应、调整、增强您的需求。
类似的问答和文档