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

如何通过带for循环的Jinja2模板将CSV值导入Ansible生成配置文件

从CSV生成指定YAML配置的Jinja2模板方案

现有CSV文件(sample.csv)

ms-1,svc-1
ms-2,svc-2

目标生成的YAML配置格式

- names:
  - ms-1
  - svc-1
- names:
  - ms-2
  - svc-2

已编写的Ansible Playbook(test.yaml)

---
- name: Generate Conf file
  hosts: localhost
  gather_facts: false

  tasks:

  - name: Gather list
    shell: "cat sample.csv"
    register: sample_list

  - name: Template
    ansible.builtin.template:
      src: test.j2
      dest: test.op

对应的Jinja2模板(test.j2)内容

{% for line in sample_list.stdout_lines %}
{% set items = line.split(',') %}
- names:
  - {{ items[0] }}
  - {{ items[1] }}
{% endfor %}

模板逻辑说明

  • 借助sample_list.stdout_lines获取CSV文件的逐行内容,通过循环遍历每一行
  • 用split(',')将每行内容按逗号拆分为两个元素的列表
  • 按照目标YAML结构,将拆分后的元素依次填入names对应的列表项中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:19:54