Ansible - 如何管理大量的小任务

Ansible - How to manage Large list of small tasks

我为一个 ansible 项目写了很多小的 yaml 任务文件。 这些任务文件中只有少数被重用(比如 30%)。 我想知道如何管理这个庞大的任务列表,我是否应该将它们全部转换为角色,并用角色调用剧本: 剧本如下(请忽略语法),会很清楚,但我不喜欢每个简单的任务都有一个角色

- name: playbook with roles for each task
  hosts: all
  roles:
    - small_task_1
    - small_task_2
    - small_task_3
    - small_task_4
    ....
    ....
    - small_task_20

我喜欢让他们扮演 2-3 个角色,并使用 include_task(或 import_task)调用任务的想法,但问题是,对于任务的每次调用,我都有添加“import_role: , name: , tasks_from” 即使它来自同一个角色!

$ ansible-galaxy 角色列表 $/home/user1/.ansible/roles

在roles_a和roles_b中,每个

我可能有大约10个yaml任务

,

,

上面的东西不是很方便...

我想将任务分组到一个“角色”(或任何其他 ansible 事物)中,然后调用该组中的任务...类似于:

,

,

我试过 block ,但它并没有缩短剧本。

谁能指导我,好吗?

对于最后一个示例,您可以在 include_role 任务上使用 loop 指令,如下所示:

- hosts: localhost
  gather_facts: false
  tasks:
    - include_role:
        name: role_a
        tasks_from: "{{ item }}"
      loop:
        - small_task_1
        - small_task_2
        - small_task_3
        - small_task_4