角色依賴

角色還允許你通過使用 dependencies 塊建立 meta/main.yml 檔案來將其他角色定義為依賴項:

dependencies:
  - role: common

也可以將值傳遞給依賴角色中的引數/變數:

dependencies:
  - { role: common, some_parameter: 3 }

或者甚至有條件地執行依賴角色:

dependencies:
  - { role: common, some_parameter: 3 }
  - { role: sshd, enable_sshd: false,
                         when: environment == 'production' }

依賴角色始終在依賴於它們的角色之前執行。而且,它們只執行一次。如果兩個角色的狀態與其依賴關係相同,則僅在第一次執行時。

想象角色 role1,role2 和 role3 與 folhuan3 的角色:
role1 / meta / main.yml:

dependencies:
    - role: role3

基於 role2 /元/ main.yml:

dependencies:
    - role: role3

在同一個 playbook 中執行 role1 和 role2 時(在 role2 之前呼叫 role1),執行順序如下:

role3 -> role1 -> role2

你可以通過在 role1 和 role2 的 meta/main.yml 中指定 allow_duplicates: yes 來覆蓋此行為。生成的執行順序為:

role3 -> role1 -> role3 -> role2