DZ
Дано:
- несколько примерно одинаковых, но всегда разных, клиентов с желанием доступа к коду ansible. Клиент А не должен иметь доступа к коду клиента Б.
- уже два разных репозитория с разным набором ролей, плейбуков, переменных, etc. Разбиение по группам проектов.
- необходимость завести ещё минимум парочку - ну и вообще делать это с некоторой регулярностью.
- обратная совместимость между клиентами при этом не важна, т.е. можно делать изменения для одного клиента, ломающие что-то в другом.
- код постоянно развивается
Проблема:
Поддержка и синхронизация изменений даже в двух репозиториях становится неприятной. При четырех всё расползётся сильнее. Ну и чем дальше - тем хуже.
Решения:?
- Распиливать большие репозитории на репы для ролей, внутри каждого репозитория клиента собирать нужные роли скриптами (не уверен, что галакси умеет работать с приватными репами. Если умеет - то всё ещё проще.)
- Разделить конфигурацию и код - все роли в одном месте, вся конфигурация по репам клиентов + скрипты для сбора ролей (даже тупо гит сабмодули) - как более простая в реализации идея номер 1.
- Держать мастер-репозиторий, как источник истины, скриптами генерить вторичные репозитории для клиентов.
- Что-то ещё?