我有一本剧本,它调用了一些被跳过的角色。为了说明,我创建了一个带有虚拟角色的虚拟剧本。这些角色中的每个人都被跳过。
---
- hosts: localhost
connection: local
gather_facts: false
roles:
- { role: dummy, when: foo | default(false) }
- { role: dummy, when: foo | default(false) }
- { role: dummy, when: foo | default(false) }
- { role: dummy, when: foo | default(false) }
- { role: dummy, when: foo | default(false) }
和一个角色假人
---
- name: "pause 5"
pause:
seconds: "5"
- name: "pause 5"
pause:
seconds: "5"
- name: "pause 5"
pause:
seconds: "5"
- name: "pause 5"
pause:
seconds: "5"
- name: "pause 5"
pause:
seconds: "5"
具有角色依赖关系:
---
allow_duplicates: yes
dependencies:
- { role: dummy2, when: false }
- { role: dummy2, when: false }
- { role: dummy2, when: false }
此外, dummy2 只是暂停一下:
---
- name: "pause 5"
pause:
seconds: "5"
---
- name: "pause 5"
pause:
seconds: "5"
使用这个配置,有 5 次调用角色 dummy,它有 5 个任务和 3 个角色依赖项和 2 个任务。因此,总共跳过了 55 个任务 5*(5*3*2),这在我的 VM 中大约需要 2.5 秒。如果有更多跳过的角色,则线性地花费更多时间。
也许有很多跳过的角色不是一个很好的设计,但是有没有办法在不重写所有内容的情况下加速这些跳过的任务?