You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从仅定义FQDN的Inventory中获取IP并渲染Jinja模板?

解决方案:从FQDN解析IP并渲染Jinja模板

步骤1:编写Jinja模板文件

创建模板文件(例如config_template.j2),利用Ansible内置的dig查询插件解析FQDN到IP,再拼接成目标格式:

address={{ groups['example_instance'] | map('lookup', 'dig') | join(',') }}
  • groups['example_instance']:提取Inventory中example_instance组下的所有FQDN主机
  • map('lookup', 'dig'):对每个FQDN执行DNS解析,获取对应IP地址
  • join(','):将所有解析得到的IP用逗号连接成字符串

步骤2:编写Ansible Playbook执行渲染

创建Playbook(例如render_config.yml),调用模板模块生成最终配置文件:

- name: 生成含IP列表的配置文件
  hosts: localhost
  tasks:
    - name: 渲染模板
      template:
        src: config_template.j2
        dest: /目标路径/最终配置文件.conf

注意事项

  • 确保执行Playbook的控制节点能正常解析这些FQDN(DNS配置有效,或本地/etc/hosts有对应映射)
  • 若单个FQDN对应多个IP,dig查询默认返回第一个解析结果;如需指定解析记录类型,可修改为lookup('dig', inventory_hostname, 'A')明确解析A记录

内容的提问来源于stack exchange,提问作者duyluan97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 11:33:45