ansible循环中的Jinja模板

ansible循环中的Jinja模板,ansible,jinja2,Ansible,Jinja2,我需要根据CSV文件的输入运行ansible循环。我使用以下问题/作为参考。然而,我似乎不知道在哪里实际包含循环的jinja部分 到目前为止,这是我所拥有的,但它抛出了一个错误: --- - hosts: localhost connection: local gather_facts: no vars: csv_var: "{{ lookup ('file', 'file.csv') }}" tasks: - debug: msg: "{{ item

我需要根据CSV文件的输入运行ansible循环。我使用以下问题/作为参考。然而,我似乎不知道在哪里实际包含循环的jinja部分

到目前为止,这是我所拥有的,但它抛出了一个错误:

---
- hosts: localhost
  connection: local
  gather_facts: no

  vars:
    csv_var: "{{ lookup ('file', 'file.csv') }}"

  tasks:
  - debug:
      msg: "{{ item }}"
    with_items:
      - {% set list = csv_var.split(",") %}
file.csv
包含以下内容:
34512341234

理想情况下,信息应该打印出上面的数字

我得到的语法错误是:

The offending line appears to be:

    with_items:
      - {% set list = csv_var.split(",") %}
         ^ here

exception type: <class 'yaml.scanner.ScannerError'>
exception: while scanning for the next token
found character that cannot start any token
  in "<unicode string>", line 19, column 10
有问题的行似乎是:
有以下项目:
-{%set list=csv_var.split(“,”%}
^这里
异常类型:
异常:扫描下一个令牌时
找到无法启动任何令牌的字符
在“”中,第19行第10列

您应该使用Jinja2表达式,而不是语句

您还应该在Ansible中引用任何以
{
开头的字符串:

- debug:
    msg: "{{ item }}"
  with_items: "{{ csv_var.split(',') }}"

虽然Ansible会自动处理,但无需将结果列表包装到另一个列表中(元素之前的破折号)。

您应该使用Jinja2表达式,而不是语句

您还应该在Ansible中引用任何以
{
开头的字符串:

- debug:
    msg: "{{ item }}"
  with_items: "{{ csv_var.split(',') }}"
虽然Ansible会自动处理此问题,但无需将结果列表包装到另一个列表中(元素前面的破折号)