我正在从CSV文件中读取数据,注册一个变量并循环遍历其中的列表。就像下面这个简单的例子一样:
现在让我们来探讨一下这个问题。当触发最后一个任务时,需要为
问题所在:Jinja2模板引擎总是返回字符串。例如,
正如您从第3个任务(调试)的输出中可以看到的那样,在从csv/注册表中读取时,值已经是字符串类型了。
---
- hosts: localhost
vars:
csv: |
some;val;ues
string;1;2
tasks:
- name: copy
copy:
content: "{{csv}}"
dest: "vm.csv"
- name: read csv
community.general.read_csv:
path: "vm.csv"
delimiter: ";"
register: vms
- name: debug
debug:
var: vms
- name: Trigger AWX
awx.awx.workflow_launch:
name: "Do the job!"
extra_vars:
some_string: "{{ item.some }}"
an_integer: "{{ item.val }}"
another_integer: "{{ item.ues }}"
with_items: "{{ vms.list }}"
现在让我们来探讨一下这个问题。当触发最后一个任务时,需要为
an_integer
和another_integer
提供整数类型的变量,否则下面的API将会失败。问题所在:Jinja2模板引擎总是返回字符串。例如,
an_integer: "{{ item.val | int }}"
并不能改变这种行为。正如您从第3个任务(调试)的输出中可以看到的那样,在从csv/注册表中读取时,值已经是字符串类型了。
ok: [localhost] => {
"vms": {
"changed": false,
"dict": {},
"failed": false,
"list": [
{
"some": "string",
"ues": "2",
"val": "1"
}
]
}
}
如何强制一个模块参数设置为整数?
debug
模块。 - jay