27 lines
1.5 KiB
Markdown
27 lines
1.5 KiB
Markdown
# ansible-roles
|
|
|
|
Канон общих Ansible-ролей для изолированных серверных репозиториев
|
|
(`pet-project-server`, `buckland`, …).
|
|
|
|
Это **рабочая директория-канон**, а не сервис. Серверные репозитории
|
|
держат закоммиченные копии ролей в своём `roles/` и синхронизируются с
|
|
этим каноном через invoke-задачи (rsync, git здесь не участвует):
|
|
|
|
- `inv roles-pull [-- <role>]` — канон → репозиторий;
|
|
- `inv roles-push [-- <role>]` — репозиторий → канон (с подтверждением
|
|
при расхождении);
|
|
- `inv roles-status` — сравнить подписанные роли с каноном.
|
|
|
|
Каждый репозиторий объявляет подписку в своём `tasks.py`
|
|
(`SYNCED_ROLES`). «Пином версии» служит сама закоммиченная копия в
|
|
репозитории: деплоится ровно то, что лежит в его git.
|
|
|
|
Git в этой директории — опциональный бэкап истории канона, он не стоит
|
|
в рабочей петле синхронизации.
|
|
|
|
Спецификация подхода: `pet-project-server/docs/drafts/shared-roles-sync.md`.
|
|
|
|
## Роли
|
|
|
|
- `eget` — установка утилиты [eget](https://github.com/zyedidia/eget).
|