如果 x 存在事实,否则 y

问题描述 投票:0回答:1

我正在使用 ansible 为我的每台服务器创建一个主机文件,根据收集到的事实,我包括默认的 IPv4 和 IPv6 地址,一切正常,我正在努力解决的是如何填充模板没有 IPv6 地址。我正在使用

{{ ansible_default_ipv6.address }}   {{ inventory_hostname }}  {{ inventory_hostname_short }}

但是如果不存在则任务失败

我不知道该尝试什么

ansible jinja2
1个回答
0
投票

问:“没有 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

并适应、调整、增强您的需求。

© www.soinside.com 2019 - 2024. All rights reserved.