如何跳过 Ansible 中的角色?

Mr.*_*ror 7 ansible ansible-role

我有这个剧本:

  roles:
    - { role: common}
    - { role: mariadb}
    - { role: wordpress}
Run Code Online (Sandbox Code Playgroud)

想要的是在每个角色中,我都希望将第一个任务作为某些条件,如果为真,那么我想跳过整个角色,然后剧本继续下一步。

现在我可以这样使用when

  roles:
    - { role: common, when: mvar is False }
Run Code Online (Sandbox Code Playgroud)

但为此,我必须评估mvar剧本本身,但为此mvar我需要所有其他变量等。这些东西本身就是这个角色。所以我更容易扮演角色。

有什么办法吗?

tec*_*raf 5

在每个角色中,tasks/main.yml只有在满足条件时才包含一个包含任务的文件:

- include: real_tasks.yml
  when: condition_is_met
Run Code Online (Sandbox Code Playgroud)