在Ansible 2.2中,我想循环遍历从S3读取的大量文件 .
这是我的 role/tasks/main.yml
- name: Simulate variable read from S3
set_fact:
list_of_files_to_import: [
"a.tar.gz",
"b.tar.gz",
"c.tar.gz",
"d.tar.gz",
"e.tar.gz",
"f.tar.gz",
"g.tar.gz",
"h.tar.gz",
...
"zz.tar.gz"
]
- name: Process each file from S3
include: submodule.yml
with_items: list_of_files_to_import
这是 role/tasks/submodule.yml
---
- name: Restore TABLE {{ item }}
debug: var={{ item }}
这会崩溃,因为文件太多了 .
我发现我可以切片并一次发送部分:
- name: Process each file from S3
include: submodule.yml
with_items: "{{ list_of_files_to_import[0:5] }}"
- name: Process each file from S3
include: submodule.yml
with_items: "{{ list_of_files_to_import[5:10] }}"
- name: Process each file from S3
include: submodule.yml
with_items: "{{ list_of_files_to_import[10:15] }}"
- name: Process each file from S3
include: submodule.yml
with_items: "{{ list_of_files_to_import[15:20] }}"
我想尝试类似的东西,而不是硬编码所有这些小块
- name: Process each file from S3
include: submodule.yml
with_items: "{{ list_of_files_to_import[{{start}}:{{end}}] }}"
如何在Ansible 2.2中处理大量项目?