У меня есть несколько разных типов машин, на которых должно быть определено официальное репозиторий postgres APT, чтобы иметь возможность apt-get install
нужная версия инструментов. Эти разные машины должны иметь следующие общие функции:
---
- name: add postgres repo key
sudo: yes
apt_key: url=http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc
id=ACCC4CF8
- name: add postgres repo
sudo: yes
apt_repository: repo='deb http://apt.postgresql.org/pub/repos/apt/ {{ ansible_distribution_release }}-pgdg main'
У меня две роли, которые зависят от этого, моя nagios
роль (нужно выполнить кучу работы с psql) и мой postgres-base
роль. Было бы замечательно, если бы обе эти роли каким-то образом включали один и тот же файл / задачи, указанные выше.
Прямо сейчас я создал отдельную роль для задач, назвал ее postgres-repo
и я использую зависимости ролей ansible, чтобы убедиться, что обе указанные выше роли выполняются postgres-repo
перед выполнением.
Это их meta/main.yml
:
---
dependencies:
- postgres-repo
Это лучшее, что я могу сделать? Есть ли более легкий подход, чем создание отдельной роли?
Мне это кажется лучшим вариантом; роли - это делать одно дело и делать это хорошо :)