ansible循环中的Jinja模板
我需要根据CSV文件的输入运行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
---
- 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会自动处理此问题,但无需将结果列表包装到另一个列表中(元素前面的破折号)