Ansible:如果事实存在,x 会怎样,否则 y 会怎样?

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

我正在使用 Ansible 为我的每台服务器创建一个

hosts
文件,根据收集到的事实,我包括了默认的 IPv4 和 IPv6 地址,并且一切正常。

我正在努力解决的是在没有 IPv6 地址的情况下如何填充模板?

我正在使用

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

但如果不存在,任务就会失败。

我不知道该尝试什么。

ansible jinja2
1个回答
1
投票

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

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

类似的问答和文档

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