Мы разбили наше гигантское рабочее пространство на отдельные, простые роли, которые можно выполнять самостоятельно.Все они зависят от нашей роли yum, которая обеспечивает репозитории и т. Д., И от всех ролей (A, B, C), перечисленных в их meta.yml
:
./roles_galaxy/A/meta/main.yml:
dependencies:
- name: yum-repo
src: foo
./roles_galaxy/B/meta/main.yml:
dependencies:
- name: yum-repo
src: foo
./roles_galaxy/C/meta/main.yml:
dependencies:
- name: yum-repo
src: foo
Однако это вызывает yum-repoроль запускается несколько раз при запуске нашей развернутой книги воспроизведения, поэтому мы видим несколько исполнений роли yum-repo
.Мы не хотим, чтобы это делалось, поскольку это просто занимает дополнительное время и запускается многократно:
Playbook:
- name: Common Roles
hosts: things
roles:
- A
- B
- C
Вывод:
PLAY [Role A]
...
TASK [yum-repo ...]
PLAY [Role B]
...
TASK [yum-repo ...]
PLAY [Role C]
...
TASK [yum-repo ...]
IЯ пробовал allow_duplicates = false
в нашем ansible.cfg
, но я не думаю, что это правильное решение, поскольку оно все еще выполняется несколько раз.
Если требуется больше информации, я более чем счастлив попытатьсяпредоставить очищенную версию этого.На данный момент работает ansible-2.5.5.