documentation for import_tasks
提及
任何循环,条件和大多数其他关键字都将应用于包含的任务,而不是此语句本身。
这正是我想要的。不幸的是,当我尝试使import_tasks
使用循环
- import_tasks: msg.yml
with_items:
- 1
- 2
- 3
我收到了消息
ERROR!你不能在' import_tasks'上使用循环。声明。你应该使用' include_tasks'代替。
我不想要include_tasks
行为,因为这会将循环应用于包含的文件,并复制任务。我特别想为每个循环变量运行第一个任务(作为标准with_items
输出的一个任务),然后是第二个,依此类推。我怎么能得到这种行为?
具体来说,请考虑以下事项:
假设我有以下文件:
playbook.yml
---
- hosts: 192.168.33.100
gather_facts: no
tasks:
- include_tasks: msg.yml
with_items:
- 1
- 2
msg.yml
---
- name: Message 1
debug:
msg: "Message 1: {{ item }}"
- name: Message 2
debug:
msg: "Message 2: {{ item }}"
我希望打印的消息是
消息1:1 消息1:2
消息2:1
消息2:2
但是,import_tasks
我收到错误,而include_tasks
收到错误
消息1:1 消息2:1
消息1:2
消息2:2
答案 0 :(得分:1)
您可以添加with_items
循环,将列表添加到导入文件中的每个任务,并使用传递给内部import_tasks
循环的变量调用with_items
。这会将循环的处理移动到导入的文件,并且需要在所有任务上重复循环。
根据您的示例,这会将文件更改为:
playbook.yml
---
- hosts: 192.168.33.100
gather_facts: no
tasks:
- import_tasks: msg.yml
vars:
messages:
- 1
- 2
msg.yml
---
- name: Message 1
debug:
msg: "Message 1: {{ item }}"
with_items:
- "{{ messages }}"
- name: Message 2
debug:
msg: "Message 2: {{ item }}"
with_items:
- "{{ messages }}"
答案 1 :(得分:0)
这是不可能的。 spark.streaming.kafka.maxRatePerPartition=1
spark.streaming.backpressure.enabled=true
spark.streaming.backpressure.pid.minRate=1
spark.streaming.receiver.maxRate=2
/ include
语句作为一个整体与任务文件一起运行。
因此,对于循环,您将拥有:
import